diff options
author | Dickson S. Guedes | 2011-05-08 23:08:02 +0000 |
---|---|---|
committer | Dickson S. Guedes | 2011-05-08 23:08:02 +0000 |
commit | 1d3e1633ee800ed2aa69e0685cf55cfa35a13acf (patch) | |
tree | 46e922e7e82cbd46fd3260e37627afa24219d653 /lib | |
parent | 82458e2d0c9e139cc8eec2a8aa04318239e9a548 (diff) |
added templates, author name and author mail to CLI
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pgxn_utils/cli.rb | 26 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/%extension_name%.control.tt | 5 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/META.json.tt | 28 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/Makefile.tt | 24 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/doc/%extension_name%.md | 0 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/sql/%extension_name%.sql | 0 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/sql/uninstall_%extension_name%.sql | 0 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/test/expected/base.out | 0 | ||||
-rw-r--r-- | lib/pgxn_utils/templates/root/test/sql/base.sql | 0 |
9 files changed, 75 insertions, 8 deletions
diff --git a/lib/pgxn_utils/cli.rb b/lib/pgxn_utils/cli.rb index f80a77c..b8a2e48 100644 --- a/lib/pgxn_utils/cli.rb +++ b/lib/pgxn_utils/cli.rb @@ -1,13 +1,23 @@ module PgxnUtils class CLI < Thor - desc "create_extension EXTENSION_NAME", "creates an extension skeleton in current directory" - def create_extension(extension_name) - %x[bash -c "mkdir -p #{extension_name}/{sql,doc,test/{sql,expected}}"] - %x[bash -c "touch #{extension_name}/{sql/{#{extension_name},uninstall_#{extension_name}}.sql,doc/#{extension_name}.md,test/{sql/base.sql,expected/base.out}}"] - %x[echo "results/" > #{extension_name}/.gitignore] - %x[touch #{extension_name}/META.json] - %x[touch #{extension_name}/Makefile] - %x[touch #{extension_name}/#{extension_name}.control] + attr_accessor :extension_name + attr_accessor :author_name + attr_accessor :author_mail + + include Thor::Actions + + def self.source_root + @_source_root ||= File.expand_path('../templates', __FILE__) + end + + desc "create_extension EXTENSION_PATH [AUTHOR_NAME] [AUTHOR_MAIL]", "Creates an extension skeleton in current directory. A full path is accepted." + def create_extension(extension_name, author_name="Your Name", author_mail="your@email.here") + self.destination_root = File.dirname(extension_name) || destination_root + self.extension_name = File.basename(extension_name) + self.author_name = author_name + self.author_mail = author_mail + + directory "root", extension_name end end end diff --git a/lib/pgxn_utils/templates/root/%extension_name%.control.tt b/lib/pgxn_utils/templates/root/%extension_name%.control.tt new file mode 100644 index 0000000..7024085 --- /dev/null +++ b/lib/pgxn_utils/templates/root/%extension_name%.control.tt @@ -0,0 +1,5 @@ +# <%= extension_name %> extension +comment = 'template' +default_version = '1.0.0' +module_pathname = '/<%= extension_name %>' +relocatable = true diff --git a/lib/pgxn_utils/templates/root/META.json.tt b/lib/pgxn_utils/templates/root/META.json.tt new file mode 100644 index 0000000..afbbe37 --- /dev/null +++ b/lib/pgxn_utils/templates/root/META.json.tt @@ -0,0 +1,28 @@ +{ + "name": "<%= extension_name %>", + "abstract": "template", + "description": "A long description for <%= extension_name %>", + "version": "1.0.0", + "maintainer": [ + "<%= author_name %> \<<%= author_mail %>\>" + ], + "license": "postgresql", + "provides": { + "<%= extension_name %>": { + "abstract": "", + "file": "sql/<%= extension_name %>.sql", + "docfile": "doc/<%= extension_name %>.md", + "version": "1.0.0" + } + }, + "generated_by": "<%= author_name %>", + "meta-spec": { + "version": "1.0.0", + "url": "http://pgxn.org/meta/spec.txt" + }, + "tags": [ + "templ", + "some", + "tags" + ] +} diff --git a/lib/pgxn_utils/templates/root/Makefile.tt b/lib/pgxn_utils/templates/root/Makefile.tt new file mode 100644 index 0000000..ff0022e --- /dev/null +++ b/lib/pgxn_utils/templates/root/Makefile.tt @@ -0,0 +1,24 @@ +EXTENSION = <%= extension_name %> +EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/") + +DATA = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql)) +DOCS = $(wildcard doc/*.txt) +TESTS = $(wildcard test/sql/*.sql) +REGRESS = $(patsubst test/sql/%.sql,%,$(TESTS)) +REGRESS_OPTS = --inputdir=test --load-language=plpgsql +MODULES = $(patsubst %.c,%,$(wildcard src/*.c)) +PG_CONFIG = pg_config +PG91 = $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes) + +ifeq ($(PG91),yes) +all: sql/$(EXTENSION)--$(EXTVERSION).sql + +sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql + cp $< $@ + +DATA = $(wildcard sql/*--*.sql) sql/$(EXTENSION)--$(EXTVERSION).sql +EXTRA_CLEAN = sql/$(EXTENSION)--$(EXTVERSION).sql +endif + +PGXS := $(shell $(PG_CONFIG) --pgxs) +include $(PGXS) diff --git a/lib/pgxn_utils/templates/root/doc/%extension_name%.md b/lib/pgxn_utils/templates/root/doc/%extension_name%.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/lib/pgxn_utils/templates/root/doc/%extension_name%.md diff --git a/lib/pgxn_utils/templates/root/sql/%extension_name%.sql b/lib/pgxn_utils/templates/root/sql/%extension_name%.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/lib/pgxn_utils/templates/root/sql/%extension_name%.sql diff --git a/lib/pgxn_utils/templates/root/sql/uninstall_%extension_name%.sql b/lib/pgxn_utils/templates/root/sql/uninstall_%extension_name%.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/lib/pgxn_utils/templates/root/sql/uninstall_%extension_name%.sql diff --git a/lib/pgxn_utils/templates/root/test/expected/base.out b/lib/pgxn_utils/templates/root/test/expected/base.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/lib/pgxn_utils/templates/root/test/expected/base.out diff --git a/lib/pgxn_utils/templates/root/test/sql/base.sql b/lib/pgxn_utils/templates/root/test/sql/base.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/lib/pgxn_utils/templates/root/test/sql/base.sql |