diff options
Diffstat (limited to 'docshower')
-rwxr-xr-x | docshower | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/docshower b/docshower deleted file mode 100755 index 102baae..0000000 --- a/docshower +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash -# -# Fast way to browse documents stored in an archive. -# - -# Parameters -PROGRAM="$0" -BASENAME="`basename $0`" -DOCS="$HOME/data/doc" -BIBLIO="$DOCS/bibliographies" -FILELIST=".doclist" -LIST="$DOCS/$FILELIST" -DOC_PATTERN=".*\.(txt|doc|docx|rtf|pdf|sxc|csv|odt|odf|ods|xls|xlsx|ppt|epub|mobi|djvu|lit)" -FIND_OPTS="-regextype posix-egrep -iregex" -ARG="$1" -EXTRA_ARG="$2" -DATE="`date +%s`" -MAX_AGE="86400" - -# Update the filelist -function __update_filelist { - echo "Generating new filelist..." - - # Unnanex if it was erroneously annexed - if [ -h "$LIST" ] && [ -d "$DOCS/.git/annex" ]; then - ( cd $DOCS && git annex unlock $FILELIST ) - fi - - # Refresh - cd $DOCS && find . -not -path '*.git*' $FIND_OPTS "$DOC_PATTERN" > $LIST - - # Stage - git add $LIST -} - -# Check -if [ -z "$ARG" ]; then - echo "usage: $BASENAME [option] [<object>] [extra-args]" - echo " $BASENAME --refresh" - echo " $BASENAME --<program-name> <item-name>" - echo " $BASENAME --open <item-name>" - echo " $BASENAME --rifle <item-name> -p 4" - echo " $BASENAME --koreader <item-name>" - echo " $BASENAME --watch <subfolder>" - echo " $BASENAME <item-name>" - exit 1 - -elif [ "$ARG" == "--refresh" ]; then - __update_filelist - -elif [ ! -d "$DOCS" ]; then - echo "missing $DOCS folder" - exit 1 -fi - -# Check for filelist -if [ ! -e "$LIST" ]; then - __update_filelist - CHANGED="`date +%s`" -else - CHANGED="`stat --printf='%Y\n' $LIST`" -fi - -# Automatically refresh lists older than $MAX_AGE -#if ((($DATE - $CHANGED) >= $MAX_AGE)); then -# __update_filelist -#fi - -# Dispatch -#find $DOCS -iname "*$ARG*" | head -1 | while read entry; do xdg-open "$entry"; done -if [ "$ARG" == "--search" ]; then - shift - grep -i -- "$*" $LIST - -elif [ "$ARG" == "--details" ]; then - shift - entry="`echo $* | sed -e 's/^@//'`" - if grep -qiR -- "$entry" $BIBLIO; then - grep -iR -- "$entry" $BIBLIO | cut -d : -f 1 | while read file; do - echo "At $file:" - echo "" - # Thanks https://tex.stackexchange.com/questions/28506/how-to-use-a-command-line-tool-to-extract-a-bibtex-reference-that-contains-a-sea - awk -v RS='\n@' "/${entry}/" $file - done - else - find $DOCS -name ${1}.bib -exec cat {} \; - fi - -elif [ "$ARG" == "--watch" ]; then - # Convert symlink to full path and start inotifywait loop - folder="`readlink -f $DOCS`" - subfolder="$EXTRA_ARG" - echo "Watching changes at $folder/$subfolder..." - - #while inotifywait -e modify -e create -e move -e delete -r "$folder"; do - #while inotifywait -e modify -e move -r "$folder"; do - #while inotifywait -e modify -e move -r "$folder/$subfolder"; do - #while inotifywait -e modify -e create -e move -e delete -r "$folder/$subfolder"; do - # $PROGRAM --refresh - #done - inotifier $PROGRAM --refresh - -else - shift 2 - EXTRA_ARGS="$*" - - # Allows for specifying a custom command to open the file - if [ "${ARG:0:2}" == "--" ] && [ ! -z "$EXTRA_ARG" ]; then - OPEN="${ARG:2}" - ARG="$EXTRA_ARG" - - # Shortcuts for xdg-open - if [ "$OPEN" == "open" ] || [ "$OPEN" == "read" ]; then - OPEN="xdg-open" - fi - else - OPEN="xdg-open" - EXTRA_ARGS="" - fi - - grep -i -- "$ARG" $LIST | while read entry; do - echo "Opening $entry..." - cd $DOCS && $OPEN $EXTRA_ARGS "$entry" - done -fi |