Skip to content

Commit

Permalink
daemon_kit:upgrade task now selectively re-uses the app generator
Browse files Browse the repository at this point in the history
  • Loading branch information
kennethkalmer committed Sep 16, 2013
1 parent 286a8e5 commit 0984dfe
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 28 deletions.
44 changes: 17 additions & 27 deletions lib/daemon_kit/tasks/framework.rake
Expand Up @@ -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

Expand All @@ -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
5 changes: 4 additions & 1 deletion lib/generators/daemon_kit/app/app_generator.rb
Expand Up @@ -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
Expand Down

0 comments on commit 0984dfe

Please sign in to comment.