exe/config in configature-0.1.0 vs exe/config in configature-0.3.3
- old
+ new
@@ -10,11 +10,11 @@
# == Main ===================================================================
options = {
verbose: false,
quiet: false,
- config_dir: Configature.config_dir
+ config_dir: Configature::Directory.find('config')
}
program = OptionParser.new do |opts|
opts.banner = "Usage: config [options]"
@@ -40,33 +40,25 @@
$stdout = StringIO.new
end
case (arg = args.first)
when 'clean'
- Configature.configable_examples(options[:config_dir]) do |source, target|
- if (File.exist?(target))
- print "* %s: " % File.basename(target)
- File.unlink(target)
- puts "removed"
- end
+ Configature::Stamper.new(options[:config_dir]).clean! do |target|
+ puts "* %s: removed" % File.basename(target)
end
when nil
- Configature.configable_examples(options[:config_dir]) do |source, target|
- if (File.exist?(target))
- if (File.read(target).match(/__[A-Z\_]+__/))
- puts "* %s: present (requires configuration)" % File.basename(target)
- else
- puts "* %s: present" % File.basename(target)
- end
+ Configature::Stamper.new(options[:config_dir]).apply! do |source, target, created:, existing:, config_required:|
+ if (created)
+ print "* %s: created" % File.basename(target)
else
- FileUtils.copy(source, target)
-
- if (File.read(target).match(/__[A-Z\_]+__/))
- puts "* %s: created (requires configuration)" % File.basename(target)
- else
- puts "* %s: created" % File.basename(target)
- end
+ print "* %s: present" % File.basename(target)
end
+
+ if (config_required)
+ print ' (requires configuration)'
+ end
+
+ puts
end
else
$stderr.puts("Unknown command #{arg.inspect}")
exit(-1)
end