94 lines
2.5 KiB
Bash
Executable File
94 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#Ki: Gael
|
|
#Kan: 2025
|
|
#Koi: gestion mots de passe
|
|
|
|
KAZ_ROOT=/kaz
|
|
|
|
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
|
|
QUIET=1
|
|
|
|
usage() {
|
|
echo "getPasswords.sh [OPTIONS] [envname ...]
|
|
Récupère les variables d'environnement présentes dans /kaz/secret/env-envname et crée des variables à partir de ces noms là.
|
|
Les variables sont du type envname_NOMVARIABLE=valeur
|
|
On peut passer plusieurs fichiers env, à partir du moment ou ils sont tous dans le même répertoire !
|
|
OPTIONS
|
|
-h|--help Cette aide :-)
|
|
-n|--simu SIMULATION
|
|
-d foldername prend les envfiles dans un sous dossier /kaz/secret/foldername/ (pour les orgas !)
|
|
Les variables seront du type foldername-envname_NOMVARIABLE=valeur
|
|
-e varname Affiche le contenu d'une variable en particulier
|
|
"
|
|
}
|
|
|
|
if [ ! -d "${KAZ_KEY_DIR}/tmp" ]; then
|
|
mkdir "${KAZ_KEY_DIR}/tmp"
|
|
fi
|
|
|
|
for ARG in "$@"; do
|
|
if [ -n "${DIRECTORYARG}" ]; then # après un -d
|
|
SUBDIRECTORY="${ARG}"
|
|
unset DIRECTORYARG
|
|
elif [ -n "${ECHOVARARG}" ]; then # après un -e
|
|
VARTOECHO="${ARG}"
|
|
unset ECHOVARARG
|
|
QUIET="/dev/null" # pour ne pas avoir d'autres bruits ...
|
|
else
|
|
|
|
case "${ARG}" in
|
|
'-d' | '--directory' | '-f' | '--folder' | '--foldername')
|
|
DIRECTORYARG="ON ATTEND UN REPERTOIRE APRES CA" ;;
|
|
'-h' | '--help' )
|
|
usage && exit ;;
|
|
'-n' | '--simu')
|
|
SIMU="echo" ;;
|
|
'-e' | '--echo')
|
|
ECHOVARARG="ON ATTEND UNE UN NOM DE VARIABLE APRES CA" ;;
|
|
'-q' )
|
|
QUIET="/dev/null" ;;
|
|
*)
|
|
ENVFILES="${ENVFILES} ${ARG%}";;
|
|
esac
|
|
fi
|
|
done
|
|
|
|
getVars () {
|
|
# $1 : filename
|
|
grep "^[^#]*=" $1 | sed 's/\([^=]*\).*/\1/' | sort -u
|
|
}
|
|
|
|
NB_FILES=$(echo "${ENVFILES}" | wc -w )
|
|
|
|
if [[ $NB_FILES = 0 ]]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
for ENVFILE in $ENVFILES; do
|
|
FILENAME="$KAZ_KEY_DIR/env-$ENVFILE"
|
|
VARSUFFIX="$ENVFILE"_
|
|
if [ -n "${SUBDIRECTORY}" ]; then
|
|
FILENAME="$KAZ_KEY_DIR/orgas/$SUBDIRECTORY/env-$ENVFILE"
|
|
VARSUFFIX="${SUBDIRECTORY}-${ENVFILE}_"
|
|
fi
|
|
|
|
if ! [ -f "$FILENAME" ]; then
|
|
echo "$FILENAME does not exist." >& $QUIET
|
|
continue
|
|
fi
|
|
|
|
. $FILENAME # on récupère les variables
|
|
vars=$(getVars $FILENAME)
|
|
for var in $vars; do
|
|
$SIMU declare $VARSUFFIX$var=${!var}
|
|
unset $var
|
|
done
|
|
unset FILENAME VARSUFFIX vars
|
|
done
|
|
|
|
if [ -n "$VARTOECHO" ]; then
|
|
echo ${!VARTOECHO}
|
|
fi
|
|
|
|
unset ENVFILES KAZ_ROOT SUBDIRECTORY SIMU QUIET NB_FILES VARTOECHO |