diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/keyringer | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/bin/keyringer b/bin/keyringer new file mode 100755 index 0000000..fa569ff --- /dev/null +++ b/bin/keyringer @@ -0,0 +1,48 @@ +#!/usr/bin/env ruby +# +# Keyringer key management system. +# +# Copyright (C) 2011 Keyringer Development Team. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# TODO +# - a lot of things + +$:.unshift File.dirname(__FILE__) + '/../lib' +require 'keyringer' + +begin + Keyringer::Parser.new + puts "Performing action #{$action.capitalize}" + begin + action = Keyringer::Actions.const_get($action.capitalize) + rescue NameError + wrapper = Keyringer::BashWrapper.new + wrapper.execute + else + if action.is_a?(Class) + instance = action.new + output = instance.execute + puts output + end + end +rescue SystemExit => e + exit e.status +rescue Exception => e + puts "Fatal error: #{e.inspect}" + puts e.backtrace.join("\n") + + exit 1 +end |