summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2014-04-17 12:44:43 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2014-04-17 12:44:43 +0200
commit3f6b8a2038eea906b353894dcb160bf0d88f6fd7 (patch)
tree8a7c442f5285bbec1218d5e72837e7ec72177094
parent7a527ee42df43e4465a23d7d3131074547e91406 (diff)
downloadpass-3f6b8a2038eea906b353894dcb160bf0d88f6fd7.tar.gz
pass-3f6b8a2038eea906b353894dcb160bf0d88f6fd7.tar.bz2
pass-3f6b8a2038eea906b353894dcb160bf0d88f6fd7.zip
platform: add cygwin support
According to Brandon Jones, all we need to do is adjust /dev/clipboard from xclip. So we add a platform specific file to do so. http://www.relaytheurgency.com/2014/04/pass-in-cygwin-relatively-simple.html Suggested-by: Brandon Jones <jones.brandon.lee@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--Makefile2
-rw-r--r--src/platform/cygwin.sh16
2 files changed, 17 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index df9d68a..32c2d6a 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ BINDIR ?= $(PREFIX)/bin
LIBDIR ?= $(PREFIX)/lib
MANDIR ?= $(PREFIX)/share/man
-PLATFORMFILE := src/platform/$(shell uname | tr '[:upper:]' '[:lower:]').sh
+PLATFORMFILE := src/platform/$(shell uname | cut -d _ -f 1 | tr '[:upper:]' '[:lower:]').sh
.PHONY: install uninstall install-pass
diff --git a/src/platform/cygwin.sh b/src/platform/cygwin.sh
new file mode 100644
index 0000000..05c51e0
--- /dev/null
+++ b/src/platform/cygwin.sh
@@ -0,0 +1,16 @@
+# Copyright (C) 2014 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
+# This file is licensed under the GPLv2+. Please see COPYING for more information.
+
+clip() {
+ local sleep_argv0="password store sleep on display $DISPLAY"
+ pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5
+ local before="$(base64 < /dev/clipboard)"
+ echo -n "$1" > /dev/clipboard
+ (
+ ( exec -a "$sleep_argv0" sleep "$CLIP_TIME" )
+ local now="$(base64 < /dev/clipboard)"
+ [[ $now != $(echo -n "$1" | base64) ]] && before="$now"
+ echo "$before" | base64 -d > /dev/clipboard
+ ) 2>/dev/null & disown
+ echo "Copied $2 to clipboard. Will clear in $CLIP_TIME seconds."
+}