diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/get-pgp-keyid | 9 | ||||
-rwxr-xr-x | bin/meta-check (renamed from bin/check-format) | 4 | ||||
-rwxr-xr-x | bin/meta-normalize-stdio | 34 | ||||
-rwxr-xr-x | bin/normalize-stdio | 31 | ||||
-rwxr-xr-x | bin/pgp-get-keyid-by-uid | 5 | ||||
-rwxr-xr-x | bin/pgp-list-keyids (renamed from bin/list-pgp-keyids) | 7 | ||||
-rwxr-xr-x | bin/ssh-list-authorized-keys (renamed from bin/list-ssh-authorized-keys) | 6 | ||||
-rwxr-xr-x | bin/uid-map | 10 |
8 files changed, 57 insertions, 49 deletions
diff --git a/bin/get-pgp-keyid b/bin/get-pgp-keyid deleted file mode 100755 index 3aec3a1..0000000 --- a/bin/get-pgp-keyid +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env ruby -# Usage: get-keyid {username} -cfg_hackers="hackers.yml" - -###################################################################### - -require 'yaml' - -puts YAML::load(open(cfg_hackers)).find{|u|u["username"] == ARGV[0]}["pgp_keyid"] diff --git a/bin/check-format b/bin/meta-check index 06b880a..3eeb4c1 100755 --- a/bin/check-format +++ b/bin/meta-check @@ -1,5 +1,5 @@ #!/bin/bash -cfg_hackers="hackers.yml" +# TODO: update to the split YAML files ###################################################################### @@ -10,7 +10,7 @@ ret=0 norm=$(mktemp --tmpdir) trap "rm -f -- $(printf '%q' "$norm")" EXIT -"$(dirname "$0")/normalize-stdio" < "$file" > "$norm" || exit 1 +"$(dirname "$0")/meta-normalize-stdio" < "$file" > "$norm" || exit 1 usernames=($(<"$norm" sed -n 's/^[ -] username: //p' | sort)) diff --git a/bin/meta-normalize-stdio b/bin/meta-normalize-stdio new file mode 100755 index 0000000..0bb94ce --- /dev/null +++ b/bin/meta-normalize-stdio @@ -0,0 +1,34 @@ +#!/usr/bin/env ruby +require 'yaml' + +core_order = [ "username", + "fullname", + "email", # ordered list + "groups", # unordered list + "pgp_keyid", + "pgp_revoked_keyids", # unordered list + "ssh_keys", # unordered map + "extra" ] # unordered map + +extra_order = [ "alias", + "other_contact", + "roles", + "website", + "occupation", + "yob", + "location", + "languages", + "interests", + "favorite_distros" ] + +_core_order = Hash[[*core_order.map.with_index]] +_extra_order = Hash[[*extra_order.map.with_index]] + +user = YAML::load(STDIN) +user = Hash[user.sort_by{|k,v| _core_order[k]}]} +user["groups"] = user["groups"].sort if user["groups"]} +user["pgp_revoked_keyids"] = user["pgp_revoked_keyids"].sort if user["extra"]} +user["ssh_keys"] = Hash[user["ssh_keys"].sort_by{|k,v| k}] if user["ssh_keys"]} +user["extra"] = Hash[user["extra"].sort_by{|k,v| _extra_order[k]}] if user["extra"]} + +print user.to_yaml diff --git a/bin/normalize-stdio b/bin/normalize-stdio deleted file mode 100755 index 23a240e..0000000 --- a/bin/normalize-stdio +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env ruby -require 'yaml' - -core_order = [ "username", - "fullname", - "email", - "groups", - "pgp_keyid", - "pgp_revoked_keyids", - "ssh_keys", - "extra" ] - -extra_order = [ "alias", - "other_contact", - "roles", - "website", - "occupation", - "yob", - "location", - "languages", - "interests", - "favorite_distros" ] - -_core_order = Hash[[*core_order.map.with_index]] -_extra_order = Hash[[*extra_order.map.with_index]] - -print YAML::load(STDIN) - .sort_by{|u| u["username"]} - .map{|u| Hash[u.sort_by{|k,v| _core_order[k]}]} - .each{|u|u["extra"] = Hash[u["extra"].sort_by{|k,v| _extra_order[k]}] if u["extra"]} - .to_yaml diff --git a/bin/pgp-get-keyid-by-uid b/bin/pgp-get-keyid-by-uid new file mode 100755 index 0000000..1dea99f --- /dev/null +++ b/bin/pgp-get-keyid-by-uid @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +# Usage: pgp-get-keyid-by-uid {uid} + +require 'yaml' +puts YAML::load(open("users/#{ARGV[0]}.yml"))["pgp_keyid"] diff --git a/bin/list-pgp-keyids b/bin/pgp-list-keyids index 1a3dfbd..93bc292 100755 --- a/bin/list-pgp-keyids +++ b/bin/pgp-list-keyids @@ -1,6 +1,5 @@ #!/usr/bin/env ruby -# Usage: list-keyids -cfg_hackers="hackers.yml" +# Usage: pgp-list-keyids cfg_groups = { :trusted => [ "hackers", "bots" ], :secondary => [ "trustedusers" ] @@ -9,7 +8,9 @@ cfg_groups = { ###################################################################### require 'yaml' -YAML::load(open(cfg_hackers)).each do |user| +users = Dir.glob("users/*.yml").map{|f|YAML::load(open(f))} + +users.each do |user| if user["groups"] if ! (user["groups"] & cfg_groups[:trusted]).empty? puts "trusted/#{user["username"]} #{user["pgp_keyid"]}" diff --git a/bin/list-ssh-authorized-keys b/bin/ssh-list-authorized-keys index 0722b4f..fc329f2 100755 --- a/bin/list-ssh-authorized-keys +++ b/bin/ssh-list-authorized-keys @@ -1,13 +1,11 @@ #!/usr/bin/env ruby -# Usage: list-ssh-authorized-keys [username] -cfg_hackers="hackers.yml" +# Usage: ssh-list-authorized-keys [username] cfg_groups = [ "hackers", "bots" ] ###################################################################### - require 'yaml' -users = YAML::load(open(cfg_hackers)) +users = Dir.glob("users/*.yml").map{|f|YAML::load(open(f))} if ARGV[0] users = users.find_all{|u|u["username"] == ARGV[0]} diff --git a/bin/uid-map b/bin/uid-map new file mode 100755 index 0000000..90dd472 --- /dev/null +++ b/bin/uid-map @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +# Usage: uid-map + +require 'yaml' + +users = Dir.glob("users/*.yml").each do |filename| + uid = filename.sub(/users\/([0-9]*)\.yml/, "\\1").to_i + user = YAML::load(open(filename)) + puts "#{uid}:#{user["username"]}" +end |