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
|
#!/bin/bash
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- 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}
|
: ${EDITOR:=vim}
|
||||||
|
|
||||||
|
@ -15,6 +16,7 @@ parse_args "$@"; set -- "${args[@]}"
|
||||||
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
||||||
|
|
||||||
for file in "$@"; do
|
for file in "$@"; do
|
||||||
|
setx file=fndate_verifix "$file" .md
|
||||||
setx filename=basename -- "$file"
|
setx filename=basename -- "$file"
|
||||||
if [[ "$filename" == *.* ]]; then
|
if [[ "$filename" == *.* ]]; then
|
||||||
: # y'a déjà une extension, ne rien faire
|
: # y'a déjà une extension, ne rien faire
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- 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}
|
: ${EDITOR:=vim}
|
||||||
|
|
||||||
|
@ -18,6 +19,7 @@ parse_args "$@"; set -- "${args[@]}"
|
||||||
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
||||||
|
|
||||||
for file in "$@"; do
|
for file in "$@"; do
|
||||||
|
setx file=fndate_verifix "$file" .sh
|
||||||
setx filename=basename -- "$file"
|
setx filename=basename -- "$file"
|
||||||
if [[ "$filename" == *.* ]]; then
|
if [[ "$filename" == *.* ]]; then
|
||||||
: # y'a déjà une extension, ne rien faire
|
: # y'a déjà une extension, ne rien faire
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- 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}
|
: ${EDITOR:=vim}
|
||||||
|
|
||||||
|
@ -15,6 +16,7 @@ parse_args "$@"; set -- "${args[@]}"
|
||||||
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
[ $# -gt 0 ] || die "vous devez spécifier les noms des fichiers à créer"
|
||||||
|
|
||||||
for file in "$@"; do
|
for file in "$@"; do
|
||||||
|
setx file=fndate_verifix "$file" .yml
|
||||||
setx filename=basename -- "$file"
|
setx filename=basename -- "$file"
|
||||||
if [[ "$filename" == *.* ]]; then
|
if [[ "$filename" == *.* ]]; then
|
||||||
: # y'a déjà une extension, ne rien faire
|
: # y'a déjà une extension, ne rien faire
|
||||||
|
|
Loading…
Reference in New Issue