bin/katapult in katapult-0.1.2 vs bin/katapult in katapult-0.2.0
- old
+ new
@@ -2,81 +2,71 @@
# This script simplifies the usage of `katapult` by grouping relevant actions
# that the user else had to perform manually.
# See bottom for USAGE.
-require_relative '../lib/katapult/util'
-require 'bundler'
+require_relative '../lib/katapult/binary_util'
+util = Katapult::BinaryUtil
-def pink_puts(*args)
- message = "\n> #{ args.join ' ' }"
- Kernel.puts "\e[35m#{ message }\e[0m" # pink
-end
-
-# With clean Bundler env
-def run(command)
- Bundler.with_clean_env { system command }
-end
-
case (transform_command = ARGV.shift)
when 'new'
interactive = !ARGV.delete('--non-interactive')
app_name = ARGV.shift
basics_command = 'bundle exec rails generate katapult:basics'
if interactive
- pink_puts 'Please enter your database user: '
+ util.puts 'Please enter your database user: '
basics_command << ' --db-user ' << gets.chomp
- pink_puts 'Please enter your database password: '
+ util.puts 'Please enter your database password: '
basics_command << ' --db-password ' << gets.chomp
end
- pink_puts 'Creating new Rails application ...'
- run "rails new #{ app_name } --skip-test-unit --skip-bundle --database mysql"
+ util.puts 'Creating new Rails application ...'
+ util.create_rails_app app_name
Dir.chdir app_name
- pink_puts 'Initializing git repository ...'
- run 'git init'
- Katapult::Util.git_commit "rails new #{ app_name }"
+ util.puts 'Initializing git repository ...'
+ util.run 'git init --quiet'
+ util.git_commit "rails new #{ app_name }", '--quiet'
- pink_puts 'Installing katapult ...'
+ util.puts 'Installing katapult ...'
File.open('Gemfile', 'a') do |file|
file.puts "gem 'katapult'#{ ENV['KATAPULT_GEMFILE_OPTIONS'] }, group: :development"
end
- run 'bundle install'
- run 'bundle exec rails generate katapult:install'
- Katapult::Util.git_commit 'rails generate katapult:install'
+ util.run 'bundle install --quiet'
+ util.run 'bundle exec rails generate katapult:install'
+ util.git_commit 'rails generate katapult:install', '--quiet'
- pink_puts 'Generating katapult basics ...'
- run basics_command
- Katapult::Util.git_commit 'rails generate katapult:basics'
+ util.puts 'Generating katapult basics ...'
+ util.run basics_command
+ util.git_commit 'rails generate katapult:basics', '--quiet'
- pink_puts <<-INSTRUCTIONS
+ util.puts <<-INSTRUCTIONS
Application initialization done.
Next step: Model your application in lib/katapult/application_model.rb and
transform it into code by running `katapult fire`.
INSTRUCTIONS
when 'fire'
- app_model_path = 'lib/katapult/application_model.rb'
+ app_model_path = ARGV.shift || 'lib/katapult/application_model.rb'
transform_command = 'bin/rails generate katapult:transform ' + app_model_path
- pink_puts 'Loading katapult ...'
- run transform_command
- Katapult::Util.git_commit transform_command
+ util.puts 'Loading katapult ...'
+ util.run transform_command
+ util.git_commit transform_command
- pink_puts <<-INSTRUCTIONS
+ util.puts <<-INSTRUCTIONS
Model transformation done.
Now boot up your development server (e.g. with `rails server`) and try your
kickstarted application in the browser!
INSTRUCTIONS
else
puts <<-USAGE
-Usage: katapult [new APP_NAME | fire]
-Hint: Suppress database credentials prompt with `--non-interactive`
+Usage: katapult [new APP_NAME | fire [path/to/model] ]
+Suppress database credentials prompt with `--non-interactive`
USAGE
end