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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user