Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- # --------[ EVV - Environment Variable Verifier ]--------
- #
- # Verifica, setta ed eventualmente crea l'ambiente di lavoro basato su
- #+ variabili di comodo per l'identificazione delle directory di maggior
- #+ utilita
- # ============================================================================ #
- # { Dichiarazione VARIABILI }
- # DIR1 = directory che possono solo essere verificate
- # DIR2 = dir che possono essere verificate ed eventualmente create
- # DIR3 = dir che possono essere verificate, create ed aggiunte a PATH
- declare -a LEV
- declare -a DIR1
- declare -a DIR2
- declare -a DIR3
- # inserire i valori desiderati
- # nome_dir="locazione_dir"
- # per DIR2 e DIR3 si consiglia la locazione base HOME
- DIR1=(
- WP="/media/DATI"
- WD="/media/DATI/work"
- WW="/mnt/Archivio/myWork"
- )
- DIR2=(
- BG="$HOME/build"
- BL="$HOME/lbuild"
- )
- DIR3=(
- SD="$HOME/exes"
- )
- #array dei livelli
- LEV=(
- ${DIR1[*]}
- ${DIR2[*]}
- ${DIR3[*]}
- )
- T=0
- L1=${#DIR1[@]}
- L2=${#DIR2[@]}
- VERB=
- GEDI=
- ERR=
- MER=
- OPE=
- NOTG=
- # ============================================================================ #
- # { Definizione FUNZIONI }
- # check args
- function _carg() {
- if [[ "$1" ]]; then
- case "$1" in
- ( "-v" )
- VERB=1;;
- ( "-vg" | "-gv" )
- VERB=1
- GEDI=1;;
- ( "-g" )
- GEDI=1;;
- ( "-h" )
- _help
- return 0;;
- ( * )
- MER="evv> ERR127: parametro non corretto\n"
- return 127
- esac
- fi
- if [[ "$2" ]]; then
- case "$2" in
- ( "-v" )
- VERB=1;;
- ( "-g" )
- GEDI=1;;
- ( * )
- MER="evv> ERR127: parametro non corretto\n"
- return 127
- esac
- fi
- }
- # main
- function _evv() {
- for a in ${LEV[*]}
- do
- let T++
- nad=$(echo "$a" | sed "s/=.*$//")
- pad=$(echo "$a" | sed "s/^.*=//")
- if [[ -d "$pad" ]]
- then
- _set
- else
- if [[ $T > $L1 ]] && [[ $GEDI ]]
- then
- mkdir $pad
- if [[ $? != 0 ]]
- then
- MER="$MER""evv> ERR48: creazione $pad non riuscita\n"
- NOTG=1
- else
- OPE="$OPE""\tDirectory $pad creata\n"
- _set
- fi
- else
- ERR="$ERR""\t$nad non impostato, $pad non trovata\n"
- if [[ $GEDI ]]; then
- MER="$MER""evv> ERR48: le directory di primo livello non sono generabili!\n"
- NOTG=1
- fi
- fi
- fi
- done
- }
- # set environment variables
- function _set() {
- export $a
- OPE="$OPE""\t$nad impostato su $pad\n"
- if [[ $T > $L2 ]]; then
- export PATH="$PATH:$pad"
- OPE="$OPE""\t$pad aggiunto a PATH\n"
- fi
- }
- # help message
- function _help() {
- mhe="\nNAME\n"
- mhe="$mhe""\tevv - Environment Variables Verifier\n"
- mhe="$mhe""\nSYNOPSIS\n"
- mhe="$mhe""\tevv [-vg|-h]\n"
- mhe="$mhe""\nDESCRIPTION\n"
- mhe="$mhe""\t'evv' rende coerente l'ambiente di lavoro shell in base ad uno"
- mhe="$mhe"" schema di directoy definito su tre \"livelli\":\n"
- mhe="$mhe""\t\tLivello 1\tdirectory che dovrebbero esistere da sistema\n"
- mhe="$mhe""\t\t\t\tIn genere directory di montaggio partizioni dati, hard"
- mhe="$mhe"" disk esterni, ecc...\n"
- mhe="$mhe""\t\t\t\tL'unica operazione possibile e' l'impostazione di una"
- mhe="$mhe"" variabile di scorciatoia\n"
- mhe="$mhe""\t\tLivello 2\tdirectory utente senza eseguibili\n"
- mhe="$mhe""\t\t\t\tGeneralmente directory temporanee, di scambio, di"
- mhe="$mhe"" compilazione sorgenti o compilazione kernel\n"
- mhe="$mhe""\t\t\t\t. viene impostata la variabile di scorciatoia;\n"
- mhe="$mhe""\t\t\t\t. in modalita' 'generate' vengono create se non esistono\n"
- mhe="$mhe""\t\tLivello 3\tdirectory utente con eseguibili\n"
- mhe="$mhe""\t\t\t\tSoprattutto directory contenenti script personalizzati"
- mhe="$mhe"" ed altri eseguibili\n"
- mhe="$mhe""\t\t\t\t. viene impostata la variabile di scorciatoia;\n"
- mhe="$mhe""\t\t\t\t. in modalita' 'generate' vengono create se non esistono;\n"
- mhe="$mhe""\t\t\t\t. vengono inserite in PATH, consentendo"
- mhe="$mhe"" l'esecuzione diretta dei programmi contenuti\n"
- mhe="$mhe""\nOPTIONS\n"
- mhe="$mhe""\t-g\tmodalita' 'generate' - abilita la creazione delle"
- mhe="$mhe"" directory mancanti (livello 2 e 3)\n"
- mhe="$mhe""\t-h\thelp - visualizza questo \"miniman\"\n"
- mhe="$mhe""\t-v\tverbose - abilita messaggi di output ed errore\n\n"
- echo -e "$mhe"
- }
- # ============================================================================ #
- # { MAIN }
- _carg $@
- if [[ "$?" != "0" ]]
- then
- _help
- MER="$MER""evv> programma interrotto." >&2
- echo -e "$MER"
- return 127
- else
- _evv
- if [[ $VERB ]]; then
- if [[ $OPE ]]; then
- echo "evv> il programma ha eseguito le seguenti operazioni:"
- echo -e "$OPE"
- fi
- if [[ $ERR ]]; then
- echo "evv> programma terminato con le seguenti incongruenze:"
- echo -e "$ERR"
- fi
- if [[ $NOTG ]]; then
- echo -e "$MER" >&2
- return 48
- fi
- fi
- fi
- return 0
Advertisement
Add Comment
Please, Sign In to add comment