class ApioticsFactory::Publish
Public Class Methods
source_root()
click to toggle source
# File lib/apiotics_factory/publish.rb, line 15 def self.source_root if :path == nil Dir.pwd else :path end end
Public Instance Methods
fetch_info()
click to toggle source
# File lib/apiotics_factory/publish.rb, line 23 def fetch_info config_dir = File.dirname(__FILE__).chomp("/lib/apiotics_factory") + "/var" if File.exist?(config_dir + "/config.json") config = JSON.parse(File.read(config_dir + "/config.json")) ApioticsFactory.configuration.public_key = config["public_key"] ApioticsFactory.configuration.private_key = config["private_key"] ApioticsFactory.configuration.portal = config["portal"] else say("Please enter your vendor public key from the Apiotics Portal.") ApioticsFactory.configuration.public_key = ask("Vendor Public Key: ") say("Please enter your vendor private key from the Apiotics Portal.") ApioticsFactory.configuration.private_key = ask("Vendor Private Key: ") say("Please confirm the Apiotics Portal web address.") ApioticsFactory.configuration.portal = ask("Portal: ", default: "https://portal.apiotics.com/") unless ApioticsFactory.configuration.portal[-1] == "/" ApioticsFactory.configuration.portal = ApioticsFactory.configuration.portal + "/" end config = { "public_key" => ApioticsFactory.configuration.public_key, "private_key" => ApioticsFactory.configuration.private_key, "portal" => ApioticsFactory.configuration.portal } unless Dir.exist?(config_dir) Dir.mkdir(config_dir) end File.write(config_dir + "/config.json", config.to_json) end data = ApioticsFactory::Portal.driver_version(id) #puts data data = JSON.parse(data) @driver_name = data["name"] @status = true unless data.keys.include?("errors") @version = data["version"] else @status = false say("#{data['errors']['detail']}") end end
publish()
click to toggle source
need to account for the case where the portal call fails.
# File lib/apiotics_factory/publish.rb, line 66 def publish if @status == true run("tar -cvzf #{@driver_name.downcase}-#{@version}.tgz ./#{@driver_name.downcase}") say("Uploading driver to the portal...") path = Dir.pwd + "/#{@driver_name.downcase}-#{@version}.tgz" response = ApioticsFactory::Portal.publish_driver(id, path) say("Cleaning up...") run("rm #{@driver_name.downcase}-#{@version}.tgz") if response.code == 200 say("Upload successful") else say("Upload not successful") end end end