diff options
Diffstat (limited to 'dot/local/bin/cutbuffer_push')
-rwxr-xr-x | dot/local/bin/cutbuffer_push | 68 |
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 | |||
6 | default_basename=cutbuffer_grab | ||
7 | default_extension=txt | ||
8 | date_format=+%F_%H%M%S | ||
9 | SCREEN_GRAB_DEST_DIR=$HOME/$default_basename | ||
10 | |||
11 | chdir_to_destination() | ||
12 | { | ||
13 | [ -d "$SCREEN_GRAB_DEST_DIR" ] || mkdir -p "$SCREEN_GRAB_DEST_DIR" | ||
14 | cd "$SCREEN_GRAB_DEST_DIR" | ||
15 | } | ||
16 | |||
17 | choose_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 | |||
42 | get_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 | |||
62 | set -e | ||
63 | |||
64 | chdir_to_destination | ||
65 | choose_destination "$@" | ||
66 | get_out_the_way "$DESTINATION" | ||
67 | xcb -p 0 > "$DESTINATION" | ||
68 | |||