Commit ed59c68
Changed files (4)
exe
lib
saml
kit
exe/saml-kit
@@ -2,4 +2,8 @@
require "saml/kit/cli"
+Saml::Kit.configure do |configuration|
+ configuration.registry = Saml::Kit::Cli::YamlRegistry.new(File.join(Dir.home, ".samlkitrc"))
+end
+
Saml::Kit::Cli::Application.start(ARGV)
lib/saml/kit/cli/metadata.rb
@@ -0,0 +1,18 @@
+module Saml
+ module Kit
+ module Cli
+ class Metadata < Thor
+ desc "register url", "Registers the Metadata from the remote url."
+ def register(url)
+ say registry.register_url(url).to_xml(pretty: true), :green
+ end
+
+ private
+
+ def registry
+ Saml::Kit.registry
+ end
+ end
+ end
+ end
+end
lib/saml/kit/cli/yaml_registry.rb
@@ -0,0 +1,22 @@
+module Saml
+ module Kit
+ module Cli
+ class YamlRegistry < ::Saml::Kit::DefaultRegistry
+ def initialize(path)
+ @items = YAML::Store.new(path)
+ end
+
+ def register(metadata)
+ @items.transaction do
+ @items[metadata.entity_id] = metadata.to_xml
+ end
+ metadata
+ end
+
+ def metadata_for(entity_id)
+ Saml::Kit::Metadata.from(@items[entity_id])
+ end
+ end
+ end
+ end
+end
lib/saml/kit/cli.rb
@@ -1,9 +1,12 @@
require "saml/kit"
require "thor"
+require "yaml/store"
-require "saml/kit/cli/version"
require "saml/kit/cli/decode"
require "saml/kit/cli/generate"
+require "saml/kit/cli/metadata"
+require "saml/kit/cli/version"
+require "saml/kit/cli/yaml_registry"
module Saml
module Kit
@@ -14,6 +17,9 @@ module Saml
desc "generate SUBCOMMAND ...ARGS", "generate SAML artifacts."
subcommand "generate", Generate
+
+ desc "metadata SUBCOMMAND ...ARGS", "Work with SAML Metadata."
+ subcommand "metadata", Metadata
end
end
end