X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=_templates%2Fadd.sh;h=af6b2d8b3ad6b8abb461349de4184f18371c698f;hb=c45c112ae88196ea8da9c5a9efb0e167196744d2;hp=f3491598a7b22602f14854edc9c6a317da51192b;hpb=4b297da63f48cdcb5b6b7b7b92fa43ab1ce2f24d;p=senf.git diff --git a/_templates/add.sh b/_templates/add.sh index f349159..af6b2d8 100755 --- a/_templates/add.sh +++ b/_templates/add.sh @@ -2,7 +2,7 @@ if [ -z "$1" ]; then cat <. [] +Usage: $0 [-f] . [] Will add the file with that name to the current directory by copying the appropriate template and replacing the @NAME@ placeholders @@ -23,27 +23,41 @@ If is given, it is also set correctly replaced. If is unset but the environment variable SENF_AUTHOR is set, it's value is used. Otherwise, the @AUTHOR@ placeholder will need to be replaced manually. + +$0 will refrain from overwriting existing files except when the '-f' +option is specified. EOF exit 1 fi base="`dirname "$0"`"; base="`cd "$base"; pwd`" -type="${1##*.}" -name="`basename "$1" ".$type"`" +if [ "$1" == "-f" ]; then + force=1 + shift +fi + +name="`basename "$1"`" +case "$name" in + *.*) type=".${name#*.}"; name="${name%.$type}" ;; + *) type="" ;; +esac -if [ ! -r "$base/Example.$type" ] ; then +if [ ! -r "$base/Example$type" ] ; then echo "Don't know about file type '$type'" exit 1 fi [ -z "$2" ] || SENF_AUTHOR="$2" -if [ -r "$1" ] ; then +if [ -z "$force" -a -r "$1" ] ; then echo "Target file '$1' exists." exit 1 fi sed -e "s/@NAME@/$name/g" -e "s/@AUTHOR@/${SENF_AUTHOR:-@AUTHOR@}/g" \ - < "$base/Example.$type" \ + < "$base/Example$type" \ > "$1" + +svn add "$1" +svn propset svn:keywords "Author Date Id Revision" "$1"