bin/optparse_plus in optparse-plus-3.0.0 vs bin/optparse_plus in optparse-plus-3.0.1

- old
+ new

@@ -1,130 +1,29 @@ #!/usr/bin/env ruby +# frozen_string_literal: true -require 'fileutils' -require 'optparse' -require 'optparse_plus' -require 'optparse_plus/cli' +# +# This file was generated by Bundler. +# +# The application 'optparse_plus' is installed as part of a gem, and +# this file is here to facilitate running it. +# -include FileUtils -include OptparsePlus::Main -include OptparsePlus::CLILogging -include OptparsePlus::CLI -include OptparsePlus::SH +require "pathname" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", + Pathname.new(__FILE__).realpath) -main do |app_name| - check_and_prepare_basedir!(app_name,options[:force]) - using_readme = options[:readme] +bundle_binstub = File.expand_path("../bundle", __FILE__) - gemname = File.basename(app_name) - module_name = gemname.split(/-/).map(&:capitalize).collect{ |segment| segment.split(/_/).map(&:capitalize).join('') }.join('::') - - debug "Creating project for gem #{gemname}" - - chdir File.dirname(app_name) - - require_file = nil - sh! "bundle gem #{gemname} --no-color" do |stdout| - require_file = stdout.split(/\n/).select { |file| - file =~ /\.rb$/ && file !~ /version.rb$/ - }.first - end - rm_rf "#{gemname}/spec" # Don't want the default RSpec droppings - rm_rf "#{gemname}/.rspec" - - require_file = gemname if require_file.nil? - require_file.gsub!(/^.*lib\//,'') - - chdir gemname - - template_dirs_in(:full).each { |dir| mkdir_p dir } - - rspec = options[:rspec] - - ["Rakefile", ".gitignore", ].each do |file| - copy_file file, :binding => binding - end - - if rspec - template_dirs_in(:rspec).each { |dir| mkdir_p dir } - copy_file "spec/something_spec.rb", :from => :rspec, :binding => binding +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ + load(bundle_binstub) else - template_dirs_in(:test_unit).each { |dir| mkdir_p dir } - copy_file "test/unit/test_something.rb", :from => :test_unit, :binding => binding - copy_file "test/integration/test_cli.rb", :from => :test_unit, :binding => binding + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") end - - - gemspec = "#{gemname}.gemspec" - gem_variable = File.open(gemspec) { |x| x.read }.match(/(\w+)\.executables/)[1] - - license = options[:license] - warn "warning: your app has no license" unless license - license = nil if license == 'NONE' - if license - copy_file "#{options[:license]}_LICENSE.txt", :as => "LICENSE.txt" - else - #Remove the MIT license generated by `bundle gem` - debug "Making sure no LICENSE.txt file exists at the root of the repo" - FileUtils.rm_f "LICENSE.txt" - end - - #Ensure the gemspec file mentions the correct license - gemspec_content = File.read(gemspec) - if gemspec_content =~ /(^\s*#{gem_variable}\.license\s*=\s*).*/ - gemspec_content.gsub!(/(^\s*#{gem_variable}\.license\s*=\s*).*/,"\\1#{license.to_s.inspect}") - else - gemspec_content.gsub!(/(^\s*#{gem_variable}\.name\s*=\s*.*)/,"\\1\n#{" #{gem_variable}.license".ljust(20)} = #{license.to_s.inspect.upcase}") - end - # RubyGems won't deal with a gemspec in this state and so Bundler won't even - # work at all. This is not helpful, so replace the magic keys its looking for - # with something else - gemspec_content.gsub!(/TODO/,"to-do") - gemspec_content.gsub!(/FIXME/,"fix me") - gemspec_content.gsub!(/^.*\.homepage.*$/,"") - File.open(gemspec,'w') {|f| f.write gemspec_content } - - - copy_file "README.rdoc", :binding => binding if using_readme - - copy_file "bin/executable", :as => gemname, :executable => true, :binding => binding - - add_to_file gemspec, [ - " #{gem_variable}.add_development_dependency('rdoc')", - " #{gem_variable}.add_dependency('optparse_plus', '~> #{OptparsePlus::VERSION}')", - ], :before => /^end\s*$/ - ruby_major,ruby_minor,ruby_patch = RUBY_VERSION.split(/\./).map(&:to_i) - - if ruby_major >= 2 && ruby_minor >= 2 - add_to_file gemspec, [ - " #{gem_variable}.add_development_dependency('test-unit')", - ], :before => /^end\s*$/ - end - - if rspec - add_to_file gemspec, [ - " #{gem_variable}.add_development_dependency('rspec', '~> 3')", - ], :before => /^end\s*$/ - end - FileUtils.rm_f "README.md", verbose: true - - sh! %q(git add --all .) end -options[:readme] = true +require "rubygems" +require "bundler/setup" -description "Kick the bash habit by bootstrapping your Ruby command-line apps" - -on("--force","Overwrite files if they exist") -on("--[no-]readme","[Do not ]produce a README file") -on("--rspec", "Generate RSpec unit tests instead of Test::Unit") - -licenses = %w(mit apache gplv2 gplv3 custom NONE) -on("-l LICENSE","--license",licenses,"Specify the license for your project",'(' + licenses.join('|') + ')') - -use_log_level_option - -arg :app_name, :required, "Name of your app, which is used for the gem name and executable name" - -version OptparsePlus::VERSION, :compact => true - -go! +load Gem.bin_path("optparse-plus", "optparse_plus")