#!/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 FastlaneApplication include Commander::Methods def run program :version, Produce::VERSION program :description, 'CLI for \'produce\'' program :help, 'Author', 'Felix Krause ' program :help, 'Website', 'http://fastlane.tools' program :help, 'GitHub', 'https://github.com/krausefx/produce' program :help_formatter, :compact 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) Produce::Config.shared_config # to ask for missing information right in the beginning 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 FastlaneApplication.new.run