c1b32a9cccc3bd7aadbd696c64c2da0ea0ce3749
[monkeysphere.git] / src / share / mh / add_hostname
1 # -*-shell-script-*-
2 # This should be sourced by bash (though we welcome changes to make it POSIX sh compliant)
3
4 # Monkeysphere host add-hostname subcommand
5 #
6 # The monkeysphere scripts are written by:
7 # Jameson Rollins <jrollins@finestructure.net>
8 # Jamie McClelland <jm@mayfirst.org>
9 # Daniel Kahn Gillmor <dkg@fifthhorseman.net>
10 #
11 # They are Copyright 2008-2009, and are all released under the GPL,
12 # version 3 or later.
13
14 # add hostname user ID to server key
15
16 add_hostname() {
17
18 local userID
19 local fingerprint
20 local tmpuidMatch
21 local line
22 local adduidCommand
23
24 if [ -z "$1" ] ; then
25     failure "You must specify a hostname to add."
26 fi
27
28 userID="ssh://${1}"
29
30 # test that the desired user ID does not already exist
31 find_host_userid "$userID" && \
32     failure "Host userID '$userID' already exists."
33
34 if [ "$PROMPT" = "true" ] ; then
35     printf "The following user ID will be added to the host key:\n  %s\nAre you sure you would like to add this user ID? (Y/n) " "$userID" >&2
36     read OK; OK=${OK:=Y}
37     if [ "${OK/y/Y}" != 'Y' ] ; then
38         failure "User ID not added."
39     fi
40 else
41     log debug "adding user ID without prompting."
42 fi
43
44 # execute edit-key script
45 if PEM2OPENPGP_USAGE_FLAGS=authenticate \
46     <"$GNUPGHOME_HOST/secring.gpg" \
47     "$SYSSHAREDIR/keytrans" adduserid \
48     "$HOST_FINGERPRINT" "$userID" | gpg_host --import ; then
49     gpg_host --check-trustdb
50
51     update_gpg_pub_file
52
53     show_key
54
55     echo
56     echo "NOTE: User ID added to key, but key not published."
57     echo "Run '$PGRM publish-key' to publish the new user ID."
58 else
59     failure "Problem adding user ID."
60 fi
61
62 }