From 0984dfea42b33682d867222c8d320aaad3e3c94e Mon Sep 17 00:00:00 2001 From: Kenneth Kalmer Date: Mon, 16 Sep 2013 23:00:45 +0200 Subject: [PATCH] daemon_kit:upgrade task now selectively re-uses the app generator --- lib/daemon_kit/tasks/framework.rake | 44 +++++++------------ .../daemon_kit/app/app_generator.rb | 5 ++- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/lib/daemon_kit/tasks/framework.rake b/lib/daemon_kit/tasks/framework.rake index cda1d34..af0f981 100644 --- a/lib/daemon_kit/tasks/framework.rake +++ b/lib/daemon_kit/tasks/framework.rake @@ -3,7 +3,7 @@ namespace :daemon_kit do desc "Upgrade your local files for a daemon after upgrading daemon-kit" task :upgrade => 'environment' do # Run these - %w{ initializers rakefile scripts gemfile }.each do |t| + %w{ config root scripts }.each do |t| Rake::Task["daemon_kit:upgrade:#{t}"].invoke end @@ -12,41 +12,31 @@ namespace :daemon_kit do end namespace :upgrade do - # Upgrade the initializers - task :initializers do - copy_framework_template( 'config', 'boot.rb' ) + def invoke_from_app_generator(method) + app_generator.send(method) + end - if File.directory?( File.join(DaemonKit.root, 'config', 'initializers') ) - mv File.join(DaemonKit.root, 'config', 'initializers'), File.join(DAEMON_ROOT, 'config', 'pre-daemonize') - copy_framework_template( 'config', 'pre-daemonize', 'readme' ) - end + def app_generator + @app_generator ||= begin + require 'daemon_kit/generators' - unless File.directory?( File.join(DAEMON_ROOT, 'config', 'post-daemonize') ) - mkdir_p File.join(DAEMON_ROOT, 'config', 'post-daemonize') - copy_framework_template( 'config', 'post-daemonize', 'readme' ) + name = DaemonKit.configuration.daemon_name + gen = DaemonKit::Generators::AppGenerator.new( [name], { :with_dispatchers => true }, + :destination_root => DaemonKit.root ) + gen end end - # Upgrade the Rakefile - task :rakefile do - copy_framework_template( 'Rakefile' ) + task :config do + invoke_from_app_generator(:create_config_files) end - # Upgrade the scripts - task :scripts do - %w{ console destroy generate }.each do |s| - copy_framework_template( "script", s ) - end + task :root do + invoke_from_app_generator(:create_root_files) end - # Upgrade the Gemfile - task :gemfile do - copy_framework_template( 'Gemfile' ) + task :scripts do + invoke_from_app_generator(:create_script_files) end end end - -def copy_framework_template( *args ) - src_dir = File.join(DaemonKit.framework_root, 'lib', 'generators', 'daemon_kit', 'app', 'templates') - cp File.join( src_dir, *args ), File.join( DaemonKit.root, *args ) -end diff --git a/lib/generators/daemon_kit/app/app_generator.rb b/lib/generators/daemon_kit/app/app_generator.rb index f0cfd09..aa2304f 100644 --- a/lib/generators/daemon_kit/app/app_generator.rb +++ b/lib/generators/daemon_kit/app/app_generator.rb @@ -45,8 +45,11 @@ def create_root FileUtils.cd( destination_root ) end - def create_root_files + def create_readme template 'README.tt', 'README' + end + + def create_root_files copy_file 'Rakefile' template 'Gemfile.tt', 'Gemfile' end