proposer de créer la configuration par défaut

This commit is contained in:
Jephté Clain 2016-04-24 22:50:10 +04:00
parent f04e862bc0
commit f96c4821cd
3 changed files with 56 additions and 2 deletions

View File

@ -4058,6 +4058,21 @@ function debug_tee() {
################################################################################
## environnement
function get_user_defaults_file() {
# Afficher le chemin vers le fichier utilisateur à éditer pour qu'il soit chargé
# par 'set_defaults $1'. Ce fichier n'existe pas forcément; il faut peut-être le
# créer.
if [ -r "$HOME/etc/default.${HOSTNAME%%.*}/$1" ]; then
echo "$HOME/etc/default.${HOSTNAME%%.*}/$1"
elif [ -r "$HOME/etc/default/$1" ]; then
echo "$HOME/etc/default/$1"
elif [ -n "$UTOOLS_LOCAL_PROFILES" ]; then
echo "$HOME/etc/default.${HOSTNAME%%.*}/$1"
else
echo "$HOME/etc/default/$1"
fi
}
function get_defaults_files() {
# Initialiser le tableau $1(=defaults) avec la liste des fichiers qui seraient
# chargés par la commande 'set_defaults $2..N'

View File

@ -11,8 +11,8 @@ function __runsmod_loadconf() {
# chargée avec les paramètres $2 et $3 respectivement.
local config="$1" mode="$2" update="$3"
urequire runs.defaults
set_defaults runs
urequire runsmod.defaults
set_defaults runsmod
if [ -n "$config" ]; then
[ -f "$config" ] || {
eerror "$config: fichier introuvable"

39
runsmod Normal file → Executable file
View File

@ -96,6 +96,45 @@ parse_opts "${PRETTYOPTS[@]}" \
-a,--append-output append_output=1 \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
if [ -z "$config" ]; then
# Vérifier si une configuration existe
noconfig=1
get_defaults_files dconfs runsmod
for dconf in "${dconfs[@]}"; do
if [ -n "$(<"$dconf" filter_comment)" ]; then
noconfig=
break
fi
done
if [ -n "$noconfig" ]; then
setx userconfig=get_user_defaults_file runsmod
ewarn "Aucune configuration n'existe pour runsmod"
if ask_yesno "Voulez-vous installer une configuration par défaut?" X; then
if [ ! -f "$userconfig" ]; then
ewarn "Les profils par défaut ne sont pas installés. Il est conseillé d'installer nutools puis de faire 'uenv -u' avant de continuer"
ask_yesno "Voulez-vous continuer?" N || die
touch "$userconfig"
fi
setx lines=wc -l <"$userconfig"
lines=$(($lines + 4 + 1))
# dans la ligne ci-dessus, 4 est le nombre de lignes affichées par
# la commande suivante:
echo >>"$userconfig" "
### Configuration par défaut
# Ces valeurs sont copiées pour référence depuis le module runsmod.defaults
"
awk <"$ULIBDIR/runsmod.defaults" >>"$userconfig" '
BEGIN { copy = 0 }
/--runsmod.defaults--/ { copy = 1; next }
copy { print }
'
"${EDITOR:-vi}" +"$lines" "$userconfig"
elif check_interaction -y; then
die
fi
fi
fi
__runsmod_loadconf "$config" "$mode" "$update" || die
runsmod_checkenv || die
estepn "Opération dans le mode $RUNSMOD_MODE"