49 lines
1.1 KiB
Bash
49 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
header_dir=$(dirname $0)/headers
|
|
|
|
tmpfile=$(mktemp)
|
|
trap "rm -f ${tmpfile}" EXIT
|
|
|
|
git ls-files | while read file; do
|
|
years=( $(git log --format='%ai' $file | cut -d- -f1 | sort -u) )
|
|
num_years=${#years[@]}
|
|
|
|
if [ "${num_years}" == 0 ]; then
|
|
export YEARS="$(date +%Y)"
|
|
else
|
|
yearA=${years[0]}
|
|
yearB=${years[$((${num_years}-1))]}
|
|
|
|
if [ ${yearA} == ${yearB} ]; then
|
|
export YEARS="${yearA}"
|
|
else
|
|
export YEARS="${yearA}-${yearB}"
|
|
fi
|
|
fi
|
|
|
|
case "$file" in
|
|
vim25/xml/*)
|
|
# Ignore
|
|
;;
|
|
*.go)
|
|
sed -e "s/\${YEARS}/${YEARS}/" ${header_dir}/go.txt > ${tmpfile}
|
|
last_header_line=$(grep -n '\*/' ${file} | head -1 | cut -d: -f1)
|
|
tail -n +$((${last_header_line} + 1)) ${file} >> ${tmpfile}
|
|
mv ${tmpfile} ${file}
|
|
;;
|
|
*.rb)
|
|
sed -e "s/\${YEARS}/${YEARS}/" ${header_dir}/rb.txt > ${tmpfile}
|
|
last_header_line=$(grep -n '^$' ${file} | head -1 | cut -d: -f1)
|
|
tail -n +$((${last_header_line})) ${file} >> ${tmpfile}
|
|
mv ${tmpfile} ${file}
|
|
;;
|
|
*)
|
|
echo "Unhandled file: $file"
|
|
;;
|
|
esac
|
|
done
|
|
|