summaryrefslogtreecommitdiff
path: root/dot/local/bin/cutbuffer_push
diff options
context:
space:
mode:
Diffstat (limited to 'dot/local/bin/cutbuffer_push')
-rwxr-xr-xdot/local/bin/cutbuffer_push68
1 files changed, 68 insertions, 0 deletions
diff --git a/dot/local/bin/cutbuffer_push b/dot/local/bin/cutbuffer_push
new file mode 100755
index 0000000..f7e1e69
--- /dev/null
+++ b/dot/local/bin/cutbuffer_push
@@ -0,0 +1,68 @@
1#!/bin/sh
2
3# A screen-grab will be saved in $SCREEN_GRAB_DEST_DIR if set, otherwise
4# in $HOME/screen_grab/ if it exsts; otherwise $HOME.
5
6default_basename=cutbuffer_grab
7default_extension=txt
8date_format=+%F_%H%M%S
9SCREEN_GRAB_DEST_DIR=$HOME/$default_basename
10
11chdir_to_destination()
12{
13 [ -d "$SCREEN_GRAB_DEST_DIR" ] || mkdir -p "$SCREEN_GRAB_DEST_DIR"
14 cd "$SCREEN_GRAB_DEST_DIR"
15}
16
17choose_destination()
18{
19 local stamp basename extension now
20 case $# in
21 1) ;;
22 0) now=$(date "$date_format")
23 DESTINATION=$default_basename.$now.$default_extension
24 return
25 ;;
26 *) return 1 ;;
27 esac
28
29 case "$1" in
30 *.*)
31 basename=${1%.*}
32 extension=${1##*.}
33 ;;
34 *)
35 basename=$1
36 extension=$default_extension
37 ;;
38 esac
39 DESTINATION=$basename.$extension
40}
41
42get_out_the_way()
43{
44 local stamp basename extension destination
45 [ -e "$1" ] || return 0
46
47 stamp=$(date -r "$1" "$date_format") || return
48 case "$1" in
49 *.*)
50 basename=${1%.*}
51 extension=${1##*.}
52 destination=$basename.$stamp.$extension
53 ;;
54 *)
55 destination=$1.$stamp
56 ;;
57 esac
58 [ ! -e "$destination" ] || return
59 mv "$1" "$destination"
60}
61
62set -e
63
64chdir_to_destination
65choose_destination "$@"
66get_out_the_way "$DESTINATION"
67xcb -p 0 > "$DESTINATION"
68