Add -l option to cache-file.sh, so you can hard-link instead of move files.
authorW. Trevor King <wking@drexel.edu>
Fri, 30 Mar 2012 01:40:52 +0000 (21:40 -0400)
committerW. Trevor King <wking@drexel.edu>
Fri, 30 Mar 2012 01:42:27 +0000 (21:42 -0400)
posts/cache-file.mdwn
posts/cache-file/cache-file.sh

index c2c1ecf6aabb43d326d440320f2bf23a04ece120..eae2d5e70abe07f2bb80e090e2564016c7443bad 100644 (file)
@@ -2,13 +2,14 @@
 pictures using [pqiv][].  If you place `cache-file.sh` in your path,
 and add
 
-    -1 "cache-file.sh saves"
+    -1 "cache-file.sh -l saves"
     -2 "cache-file.sh trash"
 
-to `~/.pqivrc`, you can move the current picture to `.cache-saves/` or
-`.cache-trash/` by pressing 1 or 2 respectively.  The `.cache-*/`
-directory is in the same directory as the image file, and will be
-created if it doesn't exist.
+to `~/.pqivrc`, you can hard link the current picture to
+`.cache-saves/` or by pressing 1, or move the current picture to
+`.cache-trash/` by pressing 2.  The `.cache-*/` directory is in the
+same directory as the image file, and will be created if it doesn't
+exist.
 
 Not very complicated, but useful for quickly removing
 almost-duplicates, blurry pictures, etc.
index 0f3f31023a7902eb1241cf33dfff23d374eb40a3..b412d725d42dc3594881bcd60f4eeb99af99f44f 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Something along the lines of qiv's .qiv-save and .qiv-trash for pqiv.
 #
-# Copyright (C) 2010 W. Trevor King <wking@drexel.edu>
+# Copyright (C) 2010-2012 W. Trevor King <wking@drexel.edu>
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #
 #
-# usage: cache-file.sh TAG FILE
+# usage: cache-file.sh [-l] TAG FILE
 
 PREFIX=".cache-"
+
+if [ "$1" == '-l' ]; then
+       CMD='cp -l'
+       VERB='hard-linked'
+       shift
+else
+       CMD='mv'
+       VERB='moved'
+fi
+
 TAG="$1"
 FILE="$2"
 
@@ -45,6 +55,6 @@ if [ ! -d "$CACHE_DIR" ]; then
        mkdir "$CACHE_DIR"
 fi
 
-mv "$FILE" "$CACHE_DIR"
+$CMD "$FILE" "$CACHE_DIR"
 
-echo "moved '$FILE' to '$CACHE_DIR'"
+echo "$VERB '$FILE' to '$CACHE_DIR'"