Recently, the Perl Weekly Challenge has been linking to a EZPWC script that tries to automate a bunch of the interaction that’s necessary to participate in the challenge. But it does a bunch of stuff I don’t need, and it feels a bit like overkill. So I decided to whip up my own pwc
script that I can run each week to take care of the repetitive stuff I do each week when I work on my challenge solutions.
#!bash - for syntax highlighting
function pwc_skeleton () {
SKELETON=$1
FILE=$2
if [[ ! -f $FILE ]]; then
cp $SKELETON $FILE
fi
chmod +x $FILE
}
function pwc () {
cd $HOME/git/perlweeklychallenge-club/
# update the repository to the latest week
if ! git remote | grep upstream >/dev/null; then
git remote add upstream \
git@github.com:manwar/perlweeklychallenge-club.git
fi
git fetch upstream
git switch master
git merge upstream/master
git push
# find the latest challenge directory
CHALLENGE_DIR=$(ls -d challenge-* | tail -1)
cd $CHALLENGE_DIR/packy-anderson
# set up the skeleton files
mkdir raku
pwc_skeleton $CFGDIR/pwc/skeleton.raku raku/ch-1.raku
pwc_skeleton $CFGDIR/pwc/skeleton.raku raku/ch-2.raku
mkdir perl
pwc_skeleton $CFGDIR/pwc/skeleton.pl perl/ch-1.pl
pwc_skeleton $CFGDIR/pwc/skeleton.pl perl/ch-2.pl
mkdir python
pwc_skeleton $CFGDIR/pwc/skeleton.py python/ch-1.py
pwc_skeleton $CFGDIR/pwc/skeleton.py python/ch-2.py
touch blog.txt
git add .
code .
}
And yes, it’s in Bash and not Perl or Raku. Because sometimes Bash is just the right tool for the job. This file gets sourced from my .bashrc
file, so the functions are defined and when I type pwc
it’s executed in my current shell.
This and my skeleton files are under source control at https://github.com/packy/maccfg/tree/master/pwc.