implémentation minimale de fndate
This commit is contained in:
parent
0a868dd179
commit
eead65706d
|
@ -0,0 +1,45 @@
|
|||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
##@cooked nocomments
|
||||
module: fndate "gestion de fichiers dont le nom contient la date"
|
||||
|
||||
function: fndate_verifix "\
|
||||
corriger le chemin \$1 pour ajouter le cas échéant une date au nom du fichier
|
||||
le fichier n'existe peut-être pas au moment où cette fonction est appelée
|
||||
\$2 est l'extension finale du fichier, à ignorer si elle est présente
|
||||
(elle n'est cependant pas ajoutée si elle n'est pas présente)
|
||||
\$3 est la date à sélectionner (par défaut c'est la date du jour)
|
||||
|
||||
XXX à implémenter:
|
||||
- gestion de la date
|
||||
- ajout d'un suffixe .N le cas échéant (i.e YYMMDD.NN)
|
||||
"
|
||||
function fndate_verifix() {
|
||||
local dir filename ext date
|
||||
if [[ "$1" == */* ]]; then
|
||||
dir="$(dirname -- "$1")"
|
||||
filename="$(basename -- "$1")"
|
||||
else
|
||||
dir=
|
||||
filename="$1"
|
||||
fi
|
||||
ext="$2"
|
||||
if [ -n "$ext" ]; then
|
||||
ext=".${2#.}"
|
||||
if [ "${filename%$ext}" != "$filename" ]; then
|
||||
filename="${filename%$ext}"
|
||||
else
|
||||
ext=
|
||||
fi
|
||||
fi
|
||||
date="$3"
|
||||
[ -n "$date" ] || date="$(date +%y%m%d)"
|
||||
|
||||
case "$filename" in
|
||||
~~-*) filename="$date-${filename#~~-}";;
|
||||
~~*) filename="$date-${filename#~~}";;
|
||||
*-~~) filename="${filename%-~~}-$date";;
|
||||
*~~) filename="${filename%~~}-$date";;
|
||||
esac
|
||||
|
||||
echo "${dir:+$dir/}$filename$ext"
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/bash
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
source /etc/nulib.sh || exit 1
|
||||
source "$(dirname -- "$0")/../load.sh" || exit 1
|
||||
require: fndate
|
||||
|
||||
: ${EDITOR:=vim}
|
||||
|
||||
|
@ -15,6 +16,7 @@ parse_args "$@"; set -- "${args[@]}"
|
|||
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
||||
|
||||
for file in "$@"; do
|
||||
setx file=fndate_verifix "$file" .md
|
||||
setx filename=basename -- "$file"
|
||||
if [[ "$filename" == *.* ]]; then
|
||||
: # y'a déjà une extension, ne rien faire
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/bash
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
source /etc/nulib.sh || exit 1
|
||||
source "$(dirname -- "$0")/../load.sh" || exit 1
|
||||
require: fndate
|
||||
|
||||
: ${EDITOR:=vim}
|
||||
|
||||
|
@ -18,6 +19,7 @@ parse_args "$@"; set -- "${args[@]}"
|
|||
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
||||
|
||||
for file in "$@"; do
|
||||
setx file=fndate_verifix "$file" .sh
|
||||
setx filename=basename -- "$file"
|
||||
if [[ "$filename" == *.* ]]; then
|
||||
: # y'a déjà une extension, ne rien faire
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/bash
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
source /etc/nulib.sh || exit 1
|
||||
source "$(dirname -- "$0")/../load.sh" || exit 1
|
||||
require: fndate
|
||||
|
||||
: ${EDITOR:=vim}
|
||||
|
||||
|
@ -15,6 +16,7 @@ parse_args "$@"; set -- "${args[@]}"
|
|||
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
||||
|
||||
for file in "$@"; do
|
||||
setx file=fndate_verifix "$file" .yml
|
||||
setx filename=basename -- "$file"
|
||||
if [[ "$filename" == *.* ]]; then
|
||||
: # y'a déjà une extension, ne rien faire
|
||||
|
|
Loading…
Reference in New Issue