added --template to skeleton, #18
authorDickson S. Guedes <guedes@guedesoft.net>
Fri, 14 Oct 2011 23:51:04 +0000 (20:51 -0300)
committerDickson S. Guedes <guedes@guedesoft.net>
Fri, 14 Oct 2011 23:51:04 +0000 (20:51 -0300)
lib/pgxn_utils/cli.rb
spec/cli_spec.rb

index cbec0ee6746838217d9369c4d20e1cf7927d6213..628b5b7c1ad9f50f58613fa81cb5c574a2c96a08 100644 (file)
@@ -24,6 +24,7 @@ module PgxnUtils
     method_option :tags,              :aliases => "-t", :type => :array,  :desc => "Defines extension's tags"
     method_option :release_status,    :aliases => "-r", :type => :string, :desc => "Initial extension's release status"
    method_option :git,               :type => :boolean, :default => false, :desc => "Initialize a git repository after create the extension"
+   method_option :template,          :type => :string, :default => "sql", :desc => "The template that will be used to create the extension. Expected values are: sql, c, fdw"
 
     def skeleton(extension_name,target=nil)
       self.target = options[:target] || target || "."
@@ -36,7 +37,7 @@ module PgxnUtils
         say "Can't create an extension overwriting an existing directory.", :red
       else
         self.set_accessors extension_name
-        directory "root", extension_name
+        directory options[:template], extension_name
 
        init_repository("#{self.target}/#{extension_name}") if options[:git]
       end
index 1201f72b62514258a31508aa7511c19f49492756..2df788011e563cece2d7d682374a660c7938edba 100644 (file)
@@ -63,12 +63,13 @@ describe PgxnUtils::CLI do
       control.should match(/default_version = '#{expected_version}'/)
     end
 
-    it "should generates a skeleton" do
+    it "should generates a default skeleton" do
       extension = next_extension
       skeleton extension
 
-      Dir["#{extension}/**/{*,.gitignore}"].sort.should == [
+      Dir["#{extension}/**/{*,.gitignore,.template}"].sort.should == [
         "#{extension}/.gitignore",
+        "#{extension}/.template",
         "#{extension}/META.json",
         "#{extension}/Makefile",
         "#{extension}/README.md",
@@ -84,6 +85,9 @@ describe PgxnUtils::CLI do
         "#{extension}/test/sql/base.sql",
         "#{extension}/#{extension}.control"
       ].sort
+
+      template = File.read("#{extension}/.template").chomp
+     template.should == "sql"
     end
 
    it "should generates a git repo with --git" do