vee/bin/veels

88 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
# This is a companion tool to vee that is used internally by vee; if
# you plan on writing custom scripts to manage your posts, I do suggest
# using `veels` as the primary was of listing the files for iteration
# or for whatever you use it for.
#Usage:
# veels [ -d dir/with/.raw/files ] [ -r ] [ -e raw|txt ]
DIR=.vee
SORT_NEW_FIRST='sort -t. -nr'
SORT_OLD_FIRST='sort -t. -n'
SORT="$SORT_NEW_FIRST"
STRIPEXT=0
USELS=0
LSOPTS='-lat'
EXT=raw
die_error()
{
echo "$1"
exit 1
}
die_cleanly()
{
exit 0
}
while getopts 'd:e:hlL:rx' option; do
case $option in
d) if [ -d "$OPTARG" ]; then
DIR="$OPTARG"
else
echo "$OPTARG" is not a directory!
die_cleanly
fi
;;
e) EXT=$OPTARG
;;
l) USELS=1 #use ls with default opts
;;
L) USELS=1 #use ls with custom opts
LSOPTS="$OPTARG"
;;
r) SORT=$SORT_OLD_FIRST # list in reverse post order
;;
x) STRIPEXT=1 #strip .raw from output
;;
h) usage # some help page
die_cleanly
;;
esac
done
read_config()
{ if [ -e ./.veerc ]; then
. ./.veerc
fi
}
get_sorted()
{
ls -1 ${DIR}/*.${EXT} | ${SORT}
}
_ls ()
{
ls ${LSOPTS} ${1}
}
#-- main program body
read_config
for f in $(get_sorted); do
if [ 1 -eq $USELS ]; then
_ls "$f"
else
if [ 1 -eq $STRIPEXT ]; then
echo "${f%\.*}"
else
echo "$f"
fi
fi
done