Added a new command line option to emit and update the stand-alone configuration file.
This commit is contained in:
parent
95fd94428a
commit
43ee4e1c98
37
lib/compass/commands/write_configuration.rb
Normal file
37
lib/compass/commands/write_configuration.rb
Normal 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
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user