]> err.no Git - yubikey-personalization/commitdiff
Add contrib/ sub-directory and contrib/programming.sh from David Dindorp.
authorSimon Josefsson <simon@josefsson.org>
Mon, 14 Jun 2010 19:39:37 +0000 (19:39 +0000)
committerSimon Josefsson <simon@josefsson.org>
Mon, 14 Jun 2010 19:39:37 +0000 (19:39 +0000)
Makefile.am
NEWS
contrib/README [new file with mode: 0644]
contrib/programming.sh [new file with mode: 0644]

index a431e01af0f9906a7a1bc9e89cf2b4c3caade5ab..bc7371e97fb3987d51b57a0dca01caa3d00e9a3e 100644 (file)
@@ -79,6 +79,9 @@ TESTS = $(ctests)
 # Dist docs from wiki.
 EXTRA_DIST = doc/Compatibility.wiki doc/MakeRelease.wiki doc/ReadMe.wiki doc/UsbhidIssue.wiki
 
+# Dist contrib stuff.
+EXTRA_DIST += contrib/README contrib/programming.sh
+
 # Release
 
 PROJECT = yubikey-personalization
diff --git a/NEWS b/NEWS
index bdec2ef6fb8ef8fa33a3522b11e8d8646e28b013..93626859ef66efa13949800f14a528750610f939 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,8 @@ Yubikey-personalize NEWS -- History of user-visible changes.     -*- outline -*-
 
 * Version 1.3.4 (unreleased)
 
-
+** Add contrib/ sub-directory and contrib/programming.sh from David Dindorp.
+See contrib/README for more information.
 
 * Version 1.3.3 (released 2010-05-20)
 
diff --git a/contrib/README b/contrib/README
new file mode 100644 (file)
index 0000000..5fe9b88
--- /dev/null
@@ -0,0 +1,7 @@
+This directory holds some add-ons to the core package for convenience.
+
+programming.sh
+
+       A simple shell script to automate HID unbinding when
+       programming many Yubikeys.  Contributed by "David Dindorp"
+       <ddi@snex.dk>.
diff --git a/contrib/programming.sh b/contrib/programming.sh
new file mode 100644 (file)
index 0000000..70f49f4
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# Copyright (c) 2010 David Dindorp <ddi@snex.dk>
+# All rights reserved.
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# 
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+# 
+#     * Redistributions in binary form must reproduce the above
+#       copyright notice, this list of conditions and the following
+#       disclaimer in the documentation and/or other materials provided
+#       with the distribution.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+for arg in $*; do
+       if [ "$arg" == "--help" ]; then
+               echo "Usage:"
+               echo "  Insert Yubikeys while this program is running to enable programming mode."
+               return 1 2>/dev/null
+               exit 1
+       fi
+done
+
+if [ `id -u` -ne 0 ]; then
+       echo "ERROR: Use 'sudo' to run this program. It's a Unix thing.">&2
+       return 1 2>/dev/null
+       exit 1
+fi
+
+grep -q Yubico /sys/bus/usb/devices/*/product; if [ $? -eq 0 ]; then
+       echo "Note: Replug existing keys to switch them from keyboard to programming mode."
+fi
+
+echo "Waiting for keys..."
+tail -n0 -f /var/log/messages | grep --line-buffered Yubikey | while read line; do
+       # Should probably use a simpler tool such as sed or awk, but alas,
+       # for once Perl has won the least cryptic syntax competition.
+       devid=`echo $line|perl -nle 'print $1 if /(\d+-\d+:\d+\.\d+)/'`
+       if [ "$devid" == "" ]; then continue; fi
+       echo "Key plugged in. Unbinding HID driver from device $devid."
+       echo $devid > /sys/bus/usb/drivers/usbhid/unbind
+done