Completed script that manages and builds jekyll site.

master
Taha Ahmed 10 years ago
parent ef85917a71
commit 97e446e480

1
.gitignore vendored

@ -4,3 +4,4 @@ documentation/
PlotDigitizer.jar
jpeglib.h
nbconvert/
sketch/

@ -11,7 +11,7 @@ d="https://keep.google.com/keep/"
# open shiny sample-matrix
# find current port number by reading shiny.port file
PORT=$(</home/taha/chepec/chetex/sample-matrix/shinyapp/shiny.port)
s="localhost:$PORT"
s="http://localhost:$PORT"
google-chrome $a $b $c $d $s

@ -0,0 +1,115 @@
#!/bin/bash
function show_help {
echo "Usage: jekyll-chepec.sh [OPTION]..."
echo "Update, sync and rebuild jekyll blog on damietta"
echo ""
echo "Give no arguments at all to make this script run everything"
echo "-c convert *.Rmd files in _knitr/ to *.md files in _posts/"
echo "-o overwrite existing *.md files if necessary"
echo "-s sync the jekyll directories locally and on damietta"
echo "-b build the live jekyll site on damietta"
echo "-h show this help"
}
# Three cases:
# 1. convert new/existing *.Rmd to *.md, with option to overwrite existing *.md
# 2. sync the jekyll website directory (for that, we use unison)
# 3. build the site (on the server)
# Note that the actions must be done in order, so if the user chooses case 2., 1. is executed first, then 2.
# Likewise, if the user chooses case 3., 1. and 2. are executed first.
# A POSIX variable
# Reset in case getopts has been used previously in the shell.
OPTIND=1
# initialise flags here
# convert new *.Rmd --> *.md?
convert=false
# convert existing *.md files as well?
overwrite_md=false
# sync jekyll directory?
unison_sync=false
# build jekyll site?
buildsite=false
# To do everything, the user could set all the flags (commmand-line options),
# but to make life a little easier, this script will interpret _no arguments_
# as "run everything"
if [ $# -eq 0 ] ; then
convert=true
overwrite_md=true
unison_sync=true
buildsite=true
fi
while getopts "h?cosb" opt; do
case $opt in
c)
convert=true
;;
o)
overwrite_md=true
;;
s)
unison_sync=true
;;
b)
buildsite=true
;;
h|\?)
show_help
exit 0
esac
done
shift $((OPTIND-1))
#### 1. convert new/existing *.Rmd to *.md
# use the function KnitPost() from the R-script render_post
if [ "$convert" = true ] ; then
echo ">>>> jc: Converting RMarkdown to Markdown (overwrite = $overwrite_md)"
if [ "$overwrite_md" = true ] ; then
Rscript -e "source('/home/taha/jekyll/chepec/_knitr/render_post.R'); KnitPost(overwrite=TRUE)"
else
Rscript -e "source('/home/taha/jekyll/chepec/_knitr/render_post.R'); KnitPost()"
fi
fi
#### 2. sync the jekyll website directory
# sync local jekyll folder with damietta
if [ "$unison_sync" = true ] ; then
echo ">>>> jc: Syncing jekyll folder"
unison jekyll-chepec -auto
fi
#### 3. build the site (on the server)
if [ "$buildsite" = true ] ; then
echo ">>>> jc: Building site on damietta"
# runs the build-jchepec.sh script (note that the path is local on damietta)
# this line is fubar and needs to be fixed or circumvented
ssh damietta bash --login -c /home/taha/jekyll/build-jchepec.sh
fi
# give the user a summary
# -- good idea, but do it better
#if [ "$buildsite" = true ] ; then
# echo ">>>> jc: Synced and built jekyll site (overwrite = $overwrite)"
#else
# echo ">>>> jc: Synced jekyll folder (overwrite = $overwrite)"
#fi
Loading…
Cancel
Save