#!/bin/bash function printUsage { echo "Usage: howto [-l | --list] file-name" exit 1 } if [ $# -ne 1 ]; then printUsage fi if [ ! -f ~/.howto ]; then echo "No .howto file found in your home directory!" exit 1 fi HOWTODIR=$(cat ~/.howto) if [ "$1" == "--sync" ]; then LRECENT=$(cat $HOWTODIR/CURRENT) SRECENT=$(wget -O - http://static.velvetcache.org/howtos/CURRENT 2> /dev/null) if [ $? -ne 0 ]; then echo "Can't contact download server." exit 1 fi if [ "$LRECENT" != "$SRECENT" ]; then cd $HOWTODIR if [ $? -ne 0 ]; then echo "Can't change to the HowTo directory." exit 1 fi wget -O howtos.tar.gz http://static.velvetcache.org/howtos/howtos.tar.gz if [ $? -ne 0 ]; then echo "Can't download new files." exit 1 fi tar -zxf howtos.tar.gz if [ $? -ne 0 ] ; then echo "Can't untar the updates." exit 1 fi rm -f howtos.tar.gz exit 0 else echo 'Nothing new to download.' exit 0 fi fi if [ "$1" == "--list" ] || [ "$1" == "-l" ]; then COUNTER=0 for howto in `ls $HOWTODIR`; do echo "$COUNTER $howto" COUNTER=$(expr $COUNTER + 1) done exit 0 fi echo $1 | grep '^[0-9][0-9]*$' > /dev/null 2>&1 if [ $? -eq 0 ]; then COUNTER=0 for howto in `ls $HOWTODIR`; do if [ $COUNTER -eq $1 ]; then cat $HOWTODIR/$howto exit 0 fi COUNTER=$(expr $COUNTER + 1) done echo 'That HowTo was not found.' exit 1 elif [ ! -f "$HOWTODIR/$1" ]; then echo 'That HowTo was not found.' exit 1 fi cat $HOWTODIR/$1 exit 0