20
0

Fix bugs and modernize new_beamer_presentation script

Switch from git checkout-index to git archive with a temp directory,
fixing unquoted variables, TMPDIR name collision, missing set -e,
missing existence check for destination, and mktemp running
unconditionally. Fix typo in error message.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-29 10:34:50 -07:00
parent e365225153
commit 77b38546ca

View File

@@ -4,37 +4,40 @@
# Copyright (c) 2009-2022 Benjamin Mako Hill <mako@atdot.cc> # Copyright (c) 2009-2022 Benjamin Mako Hill <mako@atdot.cc>
# Released under the GPLv3 or later. # Released under the GPLv3 or later.
set -e
SOURCEDIR="$HOME/tex/beamer-mako" SOURCEDIR="$HOME/tex/beamer-mako"
CURDIR=`pwd` CURDIR=$(pwd)
if test $1 if [ -n "$1" ]
then then
cd $SOURCEDIR if [ -e "$1" ]; then
git checkout-index -f --prefix=$CURDIR/$1/ $(find template -not -type d) echo "error: '$1' already exists"
cd $CURDIR exit 1
fi
# get rid of paper_template subdir WORK_DIR=$(mktemp -d)
mv $1/template/* $1 cd "$SOURCEDIR"
mv $1/template/.gitignore $1 git archive --format=tar HEAD template | tar x --strip=1 -C "$WORK_DIR"
rm -rf $CURDIR/$1/template cd "$CURDIR"
mv "$WORK_DIR" "$1"
mv $1/example.tex $1/$1.tex mv "$1/example.tex" "$1/$(basename "$1").tex"
# create a symlink farm for the fonts # create a symlink farm for the fonts
# rm -rf "./fonts/*" cd "$1"
cd $1
rm -rf ./fonts/* rm -rf ./fonts/*
# first created the directories # first create the directories
for fontdir in "${SOURCEDIR}/template/fonts/"*; do for fontdir in "${SOURCEDIR}/template/fonts/"*; do
mkdir "./fonts/$(basename "${fontdir}")" mkdir "./fonts/$(basename "${fontdir}")"
# then the files # then the files
for fontfile in "${fontdir}/"*; do for fontfile in "${fontdir}/"*; do
ln -s "${fontfile}" "./fonts/$(basename "${fontdir}")/$(basename "${fontfile}")" ln -s "${fontfile}" "./fonts/$(basename "${fontdir}")/$(basename "${fontfile}")"
done; done
done; done
cd $CURDIR cd "$CURDIR"
else else
echo "specifiy a directory where the template should go"; echo "specify a directory where the template should go"
fi fi