Added a new command line option to emit and update the stand-alone configuration file.

This commit is contained in:
Chris Eppstein 2009-02-20 17:12:36 -08:00
parent 95fd94428a
commit 43ee4e1c98
2 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,37 @@
require File.join(File.dirname(__FILE__), 'project_base')
module Compass
module Commands
class WriteConfiguration < ProjectBase
def initialize(working_path, options)
super
assert_project_directory_exists!
end
def perform
read_project_configuration
Compass.configuration.set_maybe(options)
Compass.configuration.set_defaults!
config_file = projectize("config.rb")
if File.exists?(config_file)
if options[:force]
logger.record(:overwrite, config_file)
else
message = "#{config_file} already exists. Run with --force to overwrite."
raise Compass::FilesystemConflict.new(message)
end
else
logger.record(:create, basename(config_file))
end
project_path, Compass.configuration.project_path = Compass.configuration.project_path, nil
open(config_file,'w') do |config|
config.puts Compass.configuration.serialize
end
Compass.configuration.project_path = project_path
end
end
end
end

View File

@ -113,6 +113,10 @@ END
self.options[:command] = :list_frameworks
end
opts.on('-c', '--write-configuration', "Write the current configuration to the configuration file.") do
self.options[:command] = :write_configuration
end
opts.on('-f FRAMEWORK', '--framework FRAMEWORK', 'Set up a new project using the specified framework.') do |framework|
self.options[:framework] = framework
end