nikola_links.sh (Source)

#!/bin/bash
# vim: fileencoding=utf-8:nomodified:nowrap:textwidth=0:foldmethod=marker:foldcolumn=4:syntax=sh:filetype=sh:ruler:showcmd:lcs=tab\:|- list

MYDIR=`pwd`
BACK=""
FORTH=""
if [ -f "conf.py" -a -d "posts" ] ; then
		echo "ERROR at root already"
		exit
fi
while [ `pwd` != "/" ]; do
#	echo -n "at" `pwd`
	BD=`basename $PWD`
#	echo " - $BD"
	
	cd ..
	if [ -f "conf.py" -a -d "posts" ] ; then
		echo "ARRIVED"
		break
	fi
	BACK="../$BACK"
	FORTH="$BD/$FORTH"
done
if  [ `pwd` == "/" ]; then
	echo "ERROR not nikola subdir posts"
	exit
fi
if  [ "$BD" != "posts" ]; then
	echo "ERROR not nikola subdir posts"
	exit
fi
BACK=${BACK%/}
FORTH=${FORTH%/}
echo "BACK=$BACK; FORTH=$FORTH; MYDIR=$MYDIR; PWD=" `pwd`
#echo -n "ls \$FORTH="
#ls posts/$FORTH
cd $MYDIR
#echo -n "ls \$BACK="
#ls ../$BACK

if ! [ -d "${BACK}/../listings/blog/${FORTH}" ] ; then
	echo "making listings"
	mkdir -p "${BACK}/../listings/blog/${FORTH}" 
else
	echo "listings OK"
fi
#ls -l "${BACK}/../listings/blog/${FORTH}"

if ! [ -L listings ] ; then
	echo "making listings link"
	ln -s "${BACK}/../listings/blog/${FORTH}" "listings" 
else
	echo "listings link OK"
fi
#ls -l listings

if ! [ -d "${BACK}/../images/blog/${FORTH}" ] ; then
	echo "making images"
	mkdir -p "${BACK}/../images/blog/${FORTH}" 
else
	echo "images OK"
fi
#ls "${BACK}/../images/blog/${FORTH}"

if ! [ -L images ] ; then
	echo "making images link"
	ln -s "${BACK}/../images/blog/${FORTH}" "images" 
else
	echo "images link OK"
fi
#ls -l images

if ! [ -d "${BACK}/../files/blog/${FORTH}" ] ; then
	echo "making files/blog/${FORTH}"
	mkdir -p "${BACK}/../files/blog/${FORTH}" 
else
	echo "files/blog/${FORTH} OK"
fi
#ls "${BACK}/../files/blog/${FORTH}"

if ! [ -L "${BACK}/../files/blog/${FORTH}/listings" ] ; then
	echo "making files/../listings link"
	ln -s "${BACK}/../../output/listings/blog/${FORTH}" "${BACK}/../files/blog/${FORTH}/listings" 
else
	echo "files/../listings link OK"
fi
#ls -l ${BACK}/../files/blog/${FORTH}/listings

#ls "${BACK}/../files/blog/${FORTH}"
if ! [ -L "${BACK}/../files/blog/${FORTH}/images" ] ; then
	echo "making files/../images link"
	ln -s "${BACK}/../../output/images/blog/${FORTH}" "${BACK}/../files/blog/${FORTH}/images" 
else
	echo "files/../images link OK"
fi
#ls -l ${BACK}/../files/blog/${FORTH}/images