#!/usr/bin/env ruby $:.push File.expand_path("../../lib", __FILE__) require 'produce' require 'commander' require 'credentials_manager/password_manager' require 'credentials_manager/appfile_config' HighLine.track_eof = false class ProduceApplication include Commander::Methods def run program :version, Produce::VERSION program :description, 'CLI for \'produce\'' program :help, 'Author', 'Felix Krause ' program :help, 'Website', 'https://fastlane.tools' program :help, 'GitHub', 'https://github.com/krausefx/produce' # program :help_formatter, :compact # https://github.com/commander-rb/commander/issues/12 always_trace! global_option('-u', '--username STRING', 'Your Apple ID username') command :create do |c| c.syntax = 'produce create' c.description = 'Creates a new app on iTunes Connect and the Apple Developer Portal' c.action do |args, options| set_username(options.username) puts Produce::Manager.start_producing end end def set_username(username) user = username user ||= ENV["PRODUCE_USERNAME"] user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id) CredentialsManager::PasswordManager.shared_manager(user) if user end default_command :create run! end end begin FastlaneCore::UpdateChecker.start_looking_for_update('produce') ProduceApplication.new.run ensure FastlaneCore::UpdateChecker.show_update_status('produce', Produce::VERSION) end