Aller au contenu

« Snap » : différence entre les versions

De Marmits Wiki
Page créée avec « == voir les paquets snap == snap list Catégorie:Linux »
 
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
== voir les paquets snap ==
== voir les paquets snap ==
  snap list
<syntaxhighlight lang="bash" line copy>
snap list
</syntaxhighlight>
 
== Script pour voir l'historique des paquets snap ==
 
<syntaxhighlight lang="bash" line copy>
#!/bin/bash
 
# ==============================================
# FONCTIONS SNAP
# ==============================================
 
show_full_snap_history() {
    sudo snap changes --abs-time | awk '
    NR>1 {
        id = $1;
        status = $2;
        summary = substr($0, index($0,$3));
        cmd = "sudo snap tasks " id " 2>/dev/null | tail -n +2";
       
        printf "\033[1;33m● ID: %s\033[0m | ", id;
       
        # Couleur par statut
        if (status == "Done") printf "\033[32m";
        else if (status == "Error") printf "\033[31m";
        else printf "\033[36m";
       
        printf "Status: %s\033[0m | %s\n", status, summary;
       
        while ((cmd | getline task) > 0) {
            printf "    ↳ %s\n", task;
        }
        close(cmd);
    }'
}
 
show_snap_updates() {
    sudo snap changes --abs-time | awk '
    BEGIN {
        printf "\033[1;34m=== HISTORIQUE DES MISES À JOUR SNAP ===\033[0m\n";
        count = 0;
    }
    NR>1 && ($3 ~ /refresh|upgrade/) {
        id = $1;
        status = $2;
        summary = substr($0, index($0,$3));
       
        count++;
       
        color = "36";
        if (status == "Done") color = "32";
        if (status == "Error") color = "31";
       
        printf "\n\033[1;33m● ID: %s\033[0m | \033[%smStatus: %s\033[0m\n", id, color, status;
        printf "  Action: \033[1;35m%s\033[0m\n", summary;
       
        cmd = "sudo snap tasks " id " 2>/dev/null | grep -E '\''(Download|Install|Remove)'\''";
        while ((cmd | getline task) > 0) {
            printf " ↳ \033[90m%s\033[0m\n", task;
        }
        close(cmd);
    }
    END {
        printf "\n\033[1;34mTotal des mises à jour: %s\033[0m\n", count;
    }'
}
 
show_current_versions() {
    echo -e "\n\033[1;34m=== VERSIONS ACTUELLES ===\033[0m"
    snap list | awk '
    NR==1 {printf "\033[1m%-20s %-15s %-10s\033[0m\n", $1, $2, $4; next}
    {printf "%-20s %-15s %-10s\n", $1, $2, $4}'
}
 
# ==============================================
# MENU PRINCIPAL
# ==============================================
 
display_help() {
    echo -e "\033[1;33mUsage:\033[0m"
    echo "  $0 -f      Afficher l'historique complet (comme le script 1)"
    echo "  $0 -i      Afficher seulement les installations"
    echo "  $0 -u      Afficher seulement les suppressions"
    echo "  $0 -d      Afficher les mises à jour détaillées (comme le script 2)"
    echo "  $0 -c      Afficher les versions actuelles"
    echo "  $0 -a      Tout afficher (historique complet + versions)"
    echo -e "\n\033[1;33mExemples:\033[0m"
    echo "  $0 -f | grep -A3 \"Error\"  # Rechercher des erreurs"
    echo "  $0 -d              # Voir seulement les mises à jour"
}
 
case "$1" in
    "-f") show_full_snap_history ;;
    "-i") show_full_snap_history | grep "install" ;;
    "-u") show_full_snap_history | grep "remove" ;;
    "-d") show_snap_updates ;;
    "-c") show_current_versions ;;
    "-a")
        show_full_snap_history
        show_current_versions
        ;;
    *)
        display_help
        ;;
esac
</syntaxhighlight>


[[Catégorie:Linux]]
[[Catégorie:Linux]]

Version du 21 mai 2025 à 23:45

voir les paquets snap

snap list

Script pour voir l'historique des paquets snap

#!/bin/bash

# ==============================================
# FONCTIONS SNAP
# ==============================================

show_full_snap_history() {
    sudo snap changes --abs-time | awk '
    NR>1 {
        id = $1;
        status = $2;
        summary = substr($0, index($0,$3));
        cmd = "sudo snap tasks " id " 2>/dev/null | tail -n +2";
        
        printf "\033[1;33m● ID: %s\033[0m | ", id;
        
        # Couleur par statut
        if (status == "Done") printf "\033[32m";
        else if (status == "Error") printf "\033[31m";
        else printf "\033[36m";
        
        printf "Status: %s\033[0m | %s\n", status, summary;
        
        while ((cmd | getline task) > 0) {
            printf "    ↳ %s\n", task;
        }
        close(cmd);
    }'
}

show_snap_updates() {
    sudo snap changes --abs-time | awk '
    BEGIN {
        printf "\033[1;34m=== HISTORIQUE DES MISES À JOUR SNAP ===\033[0m\n";
        count = 0;
    }
    NR>1 && ($3 ~ /refresh|upgrade/) {
        id = $1;
        status = $2;
        summary = substr($0, index($0,$3));
        
        count++;
        
        color = "36";
        if (status == "Done") color = "32";
        if (status == "Error") color = "31";
        
        printf "\n\033[1;33m● ID: %s\033[0m | \033[%smStatus: %s\033[0m\n", id, color, status;
        printf "  Action: \033[1;35m%s\033[0m\n", summary;
        
        cmd = "sudo snap tasks " id " 2>/dev/null | grep -E '\''(Download|Install|Remove)'\''";
        while ((cmd | getline task) > 0) {
            printf "  ↳ \033[90m%s\033[0m\n", task;
        }
        close(cmd);
    }
    END {
        printf "\n\033[1;34mTotal des mises à jour: %s\033[0m\n", count;
    }'
}

show_current_versions() {
    echo -e "\n\033[1;34m=== VERSIONS ACTUELLES ===\033[0m"
    snap list | awk '
    NR==1 {printf "\033[1m%-20s %-15s %-10s\033[0m\n", $1, $2, $4; next}
    {printf "%-20s %-15s %-10s\n", $1, $2, $4}'
}

# ==============================================
# MENU PRINCIPAL
# ==============================================

display_help() {
    echo -e "\033[1;33mUsage:\033[0m"
    echo "  $0 -f      Afficher l'historique complet (comme le script 1)"
    echo "  $0 -i      Afficher seulement les installations"
    echo "  $0 -u      Afficher seulement les suppressions"
    echo "  $0 -d      Afficher les mises à jour détaillées (comme le script 2)"
    echo "  $0 -c      Afficher les versions actuelles"
    echo "  $0 -a      Tout afficher (historique complet + versions)"
    echo -e "\n\033[1;33mExemples:\033[0m"
    echo "  $0 -f | grep -A3 \"Error\"  # Rechercher des erreurs"
    echo "  $0 -d              # Voir seulement les mises à jour"
}

case "$1" in
    "-f") show_full_snap_history ;;
    "-i") show_full_snap_history | grep "install" ;;
    "-u") show_full_snap_history | grep "remove" ;;
    "-d") show_snap_updates ;;
    "-c") show_current_versions ;;
    "-a") 
        show_full_snap_history
        show_current_versions 
        ;;
    *)
        display_help
        ;;
esac