paper-cutter/{{cookiecutter.paper_repo_name}}/helpers/set-up-overleaf.sh
2024-09-20 20:24:21 +02:00

76 lines
1.8 KiB
Bash
Executable File

#!/bin/bash -e
echo "Setting up interoperability with Overleaf..."
echo "Note that you need ability to clone repos from Overleaf."
original_git_url=$(git remote get-url origin)
echo "Make sure $original_git_url exists at your git server."
echo "It should be created as en empty repo, *uncheck* option"
echo "'Initialize repository with a README' or similar."
echo ""
echo "Press ENTER to start"
read
here_dir=$(basename $PWD)
make
make source-pack
source_pack={{cookiecutter.paper_id}}.zip
echo ""
echo "Go to Overleaf, click New Project / Upload Project,"
echo "then upload $source_pack from here ($(pwd)/$source_pack)"
echo ""
echo "When it is uploaded, click Menu / Git, copy the URL"
echo "(something like https://git@git.overleaf.com/123456789ec0830001af836f),"
echo "paste here and press ENTER"
read
overleaf_git_url=$REPLY
# remove "git clone" in case it was directly copied from Overleaf
overleaf_git_url=${overleaf_git_url#git clone }
overleaf_git_id=$(basename $overleaf_git_url)
cd ..
backup_dir=${here_dir}-backup
mv $here_dir ${here_dir}-backup
git clone $overleaf_git_url $here_dir
cd $here_dir
git remote add overleaf $overleaf_git_url
git remote set-url origin $original_git_url
git config credential.helper "cache --timeout=10000000"
cp ../$backup_dir/.cookiecutter.yml .
git add .cookiecutter.yml
git commit -m 'Back cookiecutter config'
cookiecutter https://git.wmi.amu.edu.pl/filipg/paper-cutter.git --checkout 5.5.2 --output-dir .. --config-file .cookiecutter.yml --no-input --overwrite-if-exists
git add --all
git commit -m 'Bring back all the files'
perl -pne 's{OVERLEAF_GIT_URL=}{OVERLEAF_GIT_URL='$overleaf_git_url'}' -i helpers/vars
git add helpers/vars
git commit -m 'Set vars'
git push overleaf master
git push origin master
cd ..
echo "DONE"
echo "Left ${backup_dir}, now type 'cd ..' and you can remove it"