48 lines
923 B
Bash
Executable File
48 lines
923 B
Bash
Executable File
#!/bin/sh
|
|
|
|
FILES_DIR="$HOME/files"
|
|
ARCHIVE_DIR="$FILES_DIR/4in1-old-versions"
|
|
|
|
fatal() {
|
|
>&2 echo "error: $@"
|
|
exit 1
|
|
}
|
|
|
|
usage() {
|
|
>&2 echo "usage: $0 <filename> en|ru <new_version_number>"
|
|
}
|
|
|
|
mkdir_if_needed() {
|
|
[ -d "$1" ] || {
|
|
mkdir "$1"
|
|
chmod 755 "$1"
|
|
chgrp www-data "$1"
|
|
}
|
|
}
|
|
|
|
[ $# -ne 3 ] && { usage; exit 1; }
|
|
|
|
INPUT="$1"
|
|
LANG="$2"
|
|
VERSION="$3"
|
|
|
|
case $LANG in
|
|
en|ru) : ;;
|
|
*) fatal "invalid language" ;;
|
|
esac
|
|
|
|
previous_version=$(( VERSION-1 ))
|
|
target_file="$FILES_DIR/4in1-$LANG.pdf"
|
|
previous_date=$(date -r "$target_file" +"%Y%m%d")
|
|
archive_target_file="$ARCHIVE_DIR/$LANG/4in1-${LANG}_rev.${previous_version}_${previous_date}.pdf"
|
|
|
|
mkdir_if_needed "$ARCHIVE_DIR"
|
|
mkdir_if_needed "$ARCHIVE_DIR/$LANG"
|
|
|
|
[ -e "$archive_target_file" ] && fatal "invalid version: file \"$archive_target_file\" already exists"
|
|
|
|
exiftool -author=idb "$INPUT"
|
|
|
|
mv "$target_file" "$archive_target_file"
|
|
mv "$INPUT" "$target_file"
|