nam3nL0s

dde - Dir D/En/crypter

Aug 17th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.49 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #   --------[ DDE - Directory D/En/crypter ]--------
  4. #
  5. # Macro per la cifratura o decrittazione al volo di directory
  6. # Lo scopo e' quello di automatizzare il processo senza richiedere input alcuno
  7. # L'unico parametro possibile e' il nome della directory
  8. # DDE controlla se esiste la dir in chiaro; se esiste -> la cifra
  9. #+  se non esiste cerca il relativo file cifrato, lo decifra ed estrae la
  10. #+  cartella dall'archivio.
  11. # Usa 'gpg' per la cifratura e 'tar' per l'archiviazione
  12.  
  13.  
  14. # ============================================================================ #
  15. #       { Dichiarazione VARIABILI }
  16.  
  17.  
  18. # Percorso di lavoro
  19. img_dir=/media/DATI/onWork/c-dir
  20.  
  21. # ________  nomi ________
  22. SU=.dd                  # Suffisso dir estratta
  23. DEF=use                 # Dir di default
  24. ES=.tdd                 # Estensione archivio
  25. #ES=.tar                # Estensione di default
  26.  
  27.  
  28.  
  29. # ============================================================================ #
  30. #       { Definizione FUNZIONI }
  31.  
  32. # controllo exit status
  33. function _ctrl() {
  34.     if (( $? )); then
  35.         err="dde> Errore nel flusso. Livello:\n"
  36.         err=$err"\t$1\n"
  37.         err=$err"dde> IMPORTANTE: eliminare eventuale garbage in $WD\n"
  38.         err=$err"dde> Exit!\n"
  39.         echo -e "$err" >&2
  40.         exit 1
  41.     fi
  42. }
  43.  
  44. # controllo argomento
  45. function _cpar() {
  46.     if [[ "$1" ]]; then
  47.         DIR="$1"
  48.     else
  49.         DIR="$DEF"
  50.     fi
  51.     if [[ -d "$DIR$SU" ]]; then
  52.         EXE=_com
  53.     elif [[ -d "$DIR" ]]; then
  54.         mv "$DIR" "$DIR$SU"
  55.         EXE=_com
  56.     elif [[ -f "$DIR$ES"".gpg" ]]; then
  57.         EXE=_dec
  58.     else
  59.         echo "dde> ERROR: parametro errato." >&2
  60.         exit 2
  61.     fi
  62. }
  63.  
  64. # setta la working dir
  65. function _setenv() {
  66.     if [[ ! "$WD" ]]; then
  67.         WD="$img_dir"
  68.     else
  69.         WD="$WD""/c-dir"
  70.     fi
  71.     cd $WD
  72. }
  73.  
  74. # archiviazione e cifratura
  75. function _com() {
  76.     echo -n "dde> Archiviazione di $DIR in corso... "
  77.     tar -cf "$DIR$ES" "$DIR$SU/" &> /dev/null
  78.     _ctrl "Tar in archiviazione"
  79.     echo "OK"
  80.     [ -f "$DIR$ES"".gpg" ] && rm "$DIR$ES"".gpg"
  81.     echo -n "dde> Cifratura di $DIR$ES in corso... "
  82.     gpg -c "$DIR$ES"  &> /dev/null
  83.     _ctrl "Gpg in codifica"
  84.     echo "OK"
  85.     rm -r "$DIR$SU"
  86.     rm "$DIR$ES"
  87. }
  88.  
  89. # decifratura ed estrazione
  90. function _dec() {
  91.     echo -n "dde> Decifrazione di $DIR$ES in corso... "
  92.     gpg "$DIR$ES"".gpg" &> /dev/null
  93.     _ctrl "Gpg in decodifica"
  94.     echo "OK"
  95.     echo -n "dde> Estrazione di $DIR in corso... "
  96.     tar -xf "$DIR$ES" &> /dev/null
  97.     _ctrl "Tar in estrazione"
  98.     echo "OK"
  99.     rm "$DIR$ES"
  100. }
  101.  
  102.  
  103.  
  104. # ============================================================================ #
  105. #       { ENTRY POINT }
  106.  
  107. _setenv
  108. _cpar $1
  109. $EXE $DIR
  110. exit 0
Advertisement
Add Comment
Please, Sign In to add comment