This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
fradrive-old/new-file.sh

94 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env zsh
# Copyright notice
COPYRIGHT_TIME=2022
CURRENT_YEAR=`date +'%Y'`
if [ $CURRENT_YEAR -gt $COPYRIGHT_TIME ]; then
COPYRIGHT_TIME="$COPYRIGHT_TIME-$CURRENT_YEAR"
fi
COPYRIGHT_USERS="`git config user.name` <`git config user.email`>"
if [ ! -z "$2" ]; then
COPYRIGHT_USERS=`git blame $2 --line-porcelain | grep -e "^author " -e "^author-mail " | sed -e "s/^author //" -e "s/^author-mail //" | sed -e ':a;N;$!ba;s/\n</ </g' | sort -u | paste -sd "," -`
fi
COPYRIGHT_NOTICE="SPDX-FileCopyrightText: $COPYRIGHT_TIME $COPYRIGHT_USERS"
# License notice
LICENSE_NOTICE="SPDX-License-Identifier: AGPL-3.0-or-later"
if [ ! -z "$3" ]; then
echo "$COPYRIGHT_NOTICE\n\n$LICENSE_NOTICE" > $2.license
exit 0
fi
case "$1" in
*.hs)
COMMENT='--'
;;
routes)
COMMENT='--'
;;
*.model)
COMMENT='--'
;;
*.hamlet)
COMMENT='$#'
;;
*.msg)
COMMENT='#'
;;
*.js)
COMMENT='//'
;;
*.sass)
COMMENT='//'
;;
*.nix)
COMMENT='#'
;;
*.sh)
COMMENT='#'
;;
*.pl)
COMMENT='#'
;;
*.pm)
COMMENT='#'
;;
*.yaml)
COMMENT='#'
;;
*.yml)
COMMENT='#'
;;
*.md)
COMMENT='[comment]: # ('
COMMENT_END=' )'
;;
*.txt)
COMMENT='#'
;;
*)
echo 'Unsupported file extension'
exit 1
esac
case "$1" in
*.hamlet)
echo "\$newline never\n" > $1
echo "$COMMENT $COPYRIGHT_NOTICE$COMMENT_END\n$COMMENT$COMMENT_END" >> $1
;;
*.sh)
echo "#!/usr/bin/env bash\n" > $1
echo "$COMMENT $COPYRIGHT_NOTICE$COMMENT_END\n$COMMENT$COMMENT_END" >> $1
;;
*)
echo "$COMMENT $COPYRIGHT_NOTICE$COMMENT_END\n$COMMENT$COMMENT_END" > $1
;;
esac
while IFS= read -r line
do
echo "$COMMENT $line$COMMENT_END" >> $1
done < <(printf '%s\n' "$LICENSE_NOTICE")