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")