diff --git a/ufile b/ufile index b5cbb58..685f21a 100755 --- a/ufile +++ b/ufile @@ -15,15 +15,40 @@ USAGE OPTIONS -n, --fake - Afficher les opérations qui seraient faites" + Afficher les opérations qui seraient faites + -l, --list + Lister les règles définies + -e, --edit + Lancer un éditeur pour mettre à jour les règles" } args=(% --help '$exit_with display_help' -n,--fake fake=1 + -l,--list action=list + -e,--edit action=edit + --file action=file ) parse_args "$@"; set -- "${args[@]}" +[ -n "$action" ] || action=file + +if [ "$action" == list ]; then + array_to_lines RULES + exit 0 +elif [ "$action" == edit ]; then + setx ufile=get_user_defaults_file ufile + if [ ! -f "$ufile" ]; then + einfo "Le fichier $(ppath "$ufile") n'existe pas. Il sera créé avec un contenu par défaut" + mkdirof "$ufile" || die + cp "$scriptdir/lib/defaults/ufile" "$ufile" + fi + "${EDITOR:-vi}" "$ufile" + exit $? +fi + +[ "$action" == file ] || die "bug: $action: action non implémentée" + if [ -n "$fake" ]; then function docmd() { qvals "$@"; } else