bin/targit in targit-0.0.6 vs bin/targit in targit-0.1.0

- old
+ new

@@ -1,28 +1,41 @@ #!/usr/bin/env ruby require 'targit' require 'mercenary' +def upload(file, repo, tag, options) + asset = Targit.new(file, repo, tag, options) + asset.upload! + puts "Successfully created asset! #{asset.url}" +end + Mercenary.program(:targit) do |p| p.version Targit::VERSION p.description 'Tool for adding GitHub release assets' p.syntax 'targit [options] USER/REPO TAG /path/to/file' # rubocop:disable Style/LineLength p.option :force, '-f', '--force', 'Replace the asset if it already exists' p.option :create, '-c', '--create', 'Create release if it does not exist' p.option :prerelease, '-p', '--prerelease', 'With -c, create as a dev release' p.option :authfile, '-a FILE', '--authfile FILE', 'Set the auth file for GitHub credentials' + p.option :name, '-n NAME', '--name NAME', 'Set the name for the release asset' # rubocop:enable Style/LineLength - p.action do |args, options| - repo, tag, file = args - if repo && tag && file - puts "Attempting to upload #{file} on #{tag} of #{repo}" - asset = Targit.new(file, repo, tag, options) - asset.upload! - puts "Successfully created asset! #{asset.url}" + p.action do |_, options| + repo, tag = ARGV.shift 2 + if !repo || !tag + puts p + elsif !ARGV.empty? + ARGV.each { |file| fail("#{file} not found") unless File.exist? file } + ARGV.each do |file| + puts "Adding #{file} on #{tag} of #{repo}" + upload file, repo, tag, options + end + elsif !STDIN.tty? + fail('Name required if file is passed via STDIN') unless options[:name] + upload STDIN, repo, tag, options else puts p end end end