pandoc-make: confirm before overwriting md and tex files (guess why I
added this 🙄)
This commit is contained in:
parent
942ddfa4fb
commit
47bc5bf1e1
1 changed files with 41 additions and 3 deletions
|
@ -22,6 +22,17 @@ usage() {
|
||||||
# 2) You can set default arguments in the array PANDOC_DEFAULT_ARGS and export them for this script to use
|
# 2) You can set default arguments in the array PANDOC_DEFAULT_ARGS and export them for this script to use
|
||||||
}
|
}
|
||||||
|
|
||||||
|
confirm() {
|
||||||
|
echo -n "$@"
|
||||||
|
while true; do
|
||||||
|
read -r YN
|
||||||
|
case "$YN" in
|
||||||
|
[Yy]) return 0 ;;
|
||||||
|
*) return 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Help menu (yes, I forget how to use my own programs sometimes)
|
# Help menu (yes, I forget how to use my own programs sometimes)
|
||||||
if [[ -z "$1" ]]; then
|
if [[ -z "$1" ]]; then
|
||||||
usage && exit 1
|
usage && exit 1
|
||||||
|
@ -36,16 +47,43 @@ if [[ -z "$2" ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OUTPUT_FORMAT="$1"
|
OUTPUT_FORMAT="$1"
|
||||||
SKIP_FIRST=true # don't process the first argument, it is the output format
|
SKIP=true # don't process the first argument, it is the output format
|
||||||
|
|
||||||
for FILE in "$@";do
|
for FILE in "$@";do
|
||||||
$SKIP_FIRST && SKIP_FIRST=false && continue
|
$SKIP && SKIP=false && continue
|
||||||
|
|
||||||
# PANDOC_ARGS="${PANDOC_DEFAULT_ARGS[*]:-"$PANDOC_ARGS"}"
|
# PANDOC_ARGS="${PANDOC_DEFAULT_ARGS[*]:-"$PANDOC_ARGS"}"
|
||||||
if [[ -f "$FILE" ]] && { [[ "${FILE:0:2}" != "./" ]] || [[ "${FILE:0:3}" != "../" ]]; }; then
|
if [[ -f "$FILE" ]] && { [[ "${FILE:0:2}" != "./" ]] || [[ "${FILE:0:3}" != "../" ]]; }; then
|
||||||
pandoc -s "$FILE" "${PANDOC_ARGS[@]}" -o "${FILE%.*}.${OUTPUT_FORMAT##.}"
|
|
||||||
|
OUTPUT_FILE="${FILE%.*}.${OUTPUT_FORMAT##.}"
|
||||||
|
|
||||||
|
# Guard against overwriting md files and tex files
|
||||||
|
if { [[ "$OUTPUT_FORMAT" = md ]] || [[ "$OUTPUT_FORMAT" = tex ]]; } && [[ -f "$OUTPUT_FILE" ]]; then
|
||||||
|
if confirm "Overwrite $FILE? [y/N]: "; then
|
||||||
|
|
||||||
|
# Make new file names until there is no overwriting
|
||||||
|
while [[ -f "$OUTPUT_FILE" ]]; do
|
||||||
|
OUTPUT_FILE="${FILE%.*}-$((FILE_NUM++)).${OUTPUT_FORMAT##.}"
|
||||||
|
done
|
||||||
|
echo "Not overwriting, new name: '$OUTPUT_FILE'"
|
||||||
|
else
|
||||||
|
# Give some time to ctrl-c before overwrite…
|
||||||
|
SLEEP_DURATION=1
|
||||||
|
echo -n "'$FILE' will be overwritten in"
|
||||||
|
for N in {3..1};do
|
||||||
|
echo -n " $N" && sleep $SLEEP_DURATION
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
pandoc "${PANDOC_ARGS[@]}" -o "$OUTPUT_FILE" "$FILE"
|
||||||
PANDOC_ARGS=()
|
PANDOC_ARGS=()
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
PANDOC_ARGS+=("$FILE")
|
PANDOC_ARGS+=("$FILE")
|
||||||
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue