Creazione automatica di un file di log per inviare quesiti al forum: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Annullata la modifica 38240 di S3v (discussione)
(Annullata la modifica 38241 di S3v (discussione))
(Annullata la modifica 38240 di S3v (discussione))
Riga 31: Riga 31:
== Parametri dello script ==
== Parametri dello script ==
Lo script accetta, in maniera facoltativa, alcuni parametri:
Lo script accetta, in maniera facoltativa, alcuni parametri:
;--update:effettua l'aggiornamento dello script se disponibile una nuova versione
;--tipo={rete|video|audio|apt|mount|touchpad|generico}:specifica il tipo di problema<br/>Es: --tipo=apt
;--tipo={rete|video|audio|apt|mount|touchpad|generico}:specifica il tipo di problema<br/>Es: --tipo=apt
;--nocompress:non crea il file compresso del file di log
;--nocompress:non crea il file compresso del file di log
Riga 74: Riga 73:


# Versione script
# Versione script
readonly VERSIONE="1.0.52"
readonly VERSIONE="1.0.51"
 
# Path e nome dello script
readonly PATH_NAME="$(readlink -f ${BASH_SOURCE[0]})"


# Codename per stable e testing. Da modificare nei successivi rilasci di Debian
# Codename per stable e testing. Da modificare nei successivi rilasci di Debian
Riga 89: Riga 85:
# Nome del file di log in base alla data corrente
# Nome del file di log in base alla data corrente
readonly log="log_$(date '+%d%b_%H%M%S')"
readonly log="log_$(date '+%d%b_%H%M%S')"
# URL remoto della pagina contenente lo script
readonly SCRIPTURL="http://guide.debianizzati.org/index.php?title=Creazione_automatica_di_un_file_di_log_per_inviare_quesiti_al_forum&action=edit"


# nome utente
# nome utente
Riga 165: Riga 158:
# Messaggio visualizzato nel caso in cui --help non sia l'unico parametro specificato
# Messaggio visualizzato nel caso in cui --help non sia l'unico parametro specificato
function _parm_uso_err {
function _parm_uso_err {
   echo "Il parametro "$1" non deve essere accompagnato da altri parametri" && _parm_uso
   echo "Il parametro --help non deve essere accompagnato da altri parametri" && _parm_uso
}
}


Riga 182: Riga 175:
$BOLD--nopaste$FINE
$BOLD--nopaste$FINE
   non viene inviato il log a paste.debian.net
   non viene inviato il log a paste.debian.net
 
$BOLD--update$FINE
  viene aggiornato lo script se è disponibile una nuova versione
    
    
$BOLD--help$FINE
$BOLD--help$FINE
Riga 195: Riga 185:
# nel passaggio del parametro tipo=blabla
# nel passaggio del parametro tipo=blabla
NOCOMPRESS=0 NOPASTE=0 TIPO=0 TIPO_RETE=0 TIPO_APT=0 TIPO_VIDEO=0
NOCOMPRESS=0 NOPASTE=0 TIPO=0 TIPO_RETE=0 TIPO_APT=0 TIPO_VIDEO=0
TIPO_AUDIO=0 TIPO_MNT=0 TIPO_TOUCH=0 TIPO_COMM=0 UPDATE=0
TIPO_AUDIO=0 TIPO_MNT=0 TIPO_TOUCH=0 TIPO_COMM=0


while [ $# -gt 0 ] ; do
while [ $# -gt 0 ] ; do
   case "$1" in
   case "$1" in
    "--update") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || UPDATE=1 ;;
     "--nocompress") [ "$NOCOMPRESS" -eq 1 ] && _parm_rip_err || NOCOMPRESS=1      ;;
     "--nocompress") [ "$NOCOMPRESS" -eq 1 ] && _parm_rip_err || NOCOMPRESS=1      ;;
     "--nopaste") [ "$NOPASTE" -eq 1 ] && _parm_rip_err || NOPASTE=1       ;;
     "--nopaste") [ "$NOPASTE" -eq 1 ] && _parm_rip_err || NOPASTE=1       ;;
Riga 209: Riga 198:
     "--tipo=touchpad") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_TOUCH=1 ;;
     "--tipo=touchpad") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_TOUCH=1 ;;
     "--tipo=generico") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_COMM=1  ;;
     "--tipo=generico") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_COMM=1  ;;
     "--help") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || _parm_uso            ;;
     "--help") [ $BASH_ARGC -gt 1 ] && _parm_uso_err || _parm_uso            ;;
     *) _parm_err
     *) _parm_err
   esac
   esac
Riga 579: Riga 568:
}
}


# Funzione che effettua l'aggiornamento automatico dello script
# Funzione che stampa un messaggio che indica i file creati e poi termina lo script
function _self_update {
function _exit {


  echo -n "Aggiornare questo script [S/n]? "
   local complog=""
  local risp
  read risp
  [ "$risp" != "" ] && [ "$risp" != "s" ] && [ "$risp" != "S" ] && _exit || echo "Aggiornamento in corso..."
 
  # Controlla l'esistenza di wget
  [ ! "$(which wget)" ] && echo "Impossibile eseguire l'aggiornamento. Installare il pacchetto wget." && _exit
 
  # Ricava la versione remota dello script
   local vers="$(wget -q -O- "$SCRIPTURL" | sed -n '/^readonly VERSIONE.*/{p;q}' | cut -d '"' -f2)"
  if [ "$vers" = "" ]; then
    echo "Connessione non riuscita" && _exit
  fi


   if [ "$vers" = "$VERSIONE" ]; then
   if [ -f "$log" ]; then
     echo "Lo script è gia alla versione più recente"
     echo -n $'\nFile contenente il log dello script: '
    _bold "$log"
   else
   else
     echo -n "È stata trovata una nuova versione dello script: " && _bold "$vers"
     echo $'\nNon è stato creato un file di log'
    echo -n "Procedere con l'aggiornamento [S/n]? "
    read risp
    case "$risp" in
      [Ss]|"")
          local tempfile="$(mktemp)" # viene creato un file temporaneo
          # lo script remoto viene copiato nel file temporaneo
          wget -q -O- "$SCRIPTURL" | sed -n "/^== Script/{n;:a n; /^&lt/ ! {s/\&amp;/\&/g; s/\&lt;/</g; p; ba}}" > "$tempfile"
          if [ ! -s "$tempfile" ]; then # Controlla se il file è vuoto
            echo "Connessione non riuscita"
          else
            cp "$tempfile" "$PATH_NAME"
            [ $? -eq 0 ] && echo "Aggiornamento effettuato" || echo "Aggiornamento fallito"
            rm -f "$tempfile" # Rimuove il file temporaneo
          fi ;;
      *)
          echo "Non è stato eseguito alcun aggiornamento"
    esac
   fi
   fi
}


# Funzione che stampa un messaggio che indica i file creati e poi termina lo script
  if [ -f "${log}.bz2" ]; then
function _exit {
    complog="${log}.bz2"
  elif [ -f "${log}.zip" ]; then
    complog="${log}.zip"
  elif [ -f "${log}.tgz" ]; then
    complog="${log}.tgz"
  fi


   # se è stato effettuato un update stampa solo il messaggio finale
   if [ -z "$complog" ]; then   
  if [ "$UPDATE" -eq 0 ]; then
    echo "Non è stato creato un file compresso del log"
    local complog=""
  else
 
    echo -n "File compresso da allegare alla discussione sul forum: "
    if [ -f "$log" ]; then
    _bold "$complog"
      echo -n $'\nFile contenente il log dello script: '
      _bold "$log"
    else
      echo $'\nNon è stato creato un file di log'
    fi
 
    if [ -f "${log}.bz2" ]; then
      complog="${log}.bz2"
    elif [ -f "${log}.zip" ]; then
      complog="${log}.zip"
    elif [ -f "${log}.tgz" ]; then
      complog="${log}.tgz"
    fi
 
    if [ -z "$complog" ]; then   
      echo "Non è stato creato un file compresso del log"
    else
      echo -n "File compresso da allegare alla discussione sul forum: "
      _bold "$complog"
    fi
   fi
   fi
   
 
   echo $'Script terminato\n'
   echo $'Script terminato\n'
   exit 0
   exit 0
Riga 1 222: Riga 1 167:


_intro
_intro
 
_avvertenze
if [ "$UPDATE" -eq 0 ]; then
_check
  _avvertenze
_scelta
  _check
_hide
  _scelta
_upload
  _hide
_compress
  _upload
  _compress
else
  _self_update
fi
 
_exit
_exit


Riga 1 240: Riga 1 179:
== Changelog ==
== Changelog ==
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione (variabile VERSIONE) all'interno del codice (la versione iniziale è 1.0.0) -->
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione (variabile VERSIONE) all'interno del codice (la versione iniziale è 1.0.0) -->
;1.0.52
:''Possibilità di auto-aggiornamento dello script (parametro "--update")''
[[Utente:S3v|S3v]] 16:39, 5 mag 2015 (CEST)
;1.0.51
;1.0.51
:''Aggiunti comandi "systemctl --failed", "journal -x -b --no-pager [-p [err, warning]]",''
:''Aggiunti comandi "systemctl --failed", "journal -x -b --no-pager [-p [err, warning]]",''
6 999

contributi

Menu di navigazione