summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorDaniel Silverstone <daniel.silverstone@codethink.co.uk>2014-03-10 12:42:31 +0000
committerDaniel Silverstone <daniel.silverstone@codethink.co.uk>2014-03-11 14:02:46 +0000
commit9a6a262606096b0392feab573c9a94f2ce3ee8fb (patch)
tree9932f1b3790cb5283f16e37226ec1108ce30b3ce /plugins
parent2cfb31e938bc94c2da2cdeb33c3bc69b04bfa932 (diff)
downloadgitano-9a6a262606096b0392feab573c9a94f2ce3ee8fb.tar.gz
The demo plugin shows how to hook into every **supported** interface for plugins. Use of any API beyond that which is shown in the demo plugin is not guaranteed at this point. Later a full plugin compatibility API definition will need to be written. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/demo.lua46
1 files changed, 46 insertions, 0 deletions
diff --git a/plugins/demo.lua b/plugins/demo.lua
new file mode 100644
index 0000000..efac4c7
--- /dev/null
+++ b/plugins/demo.lua
@@ -0,0 +1,46 @@
+-- Demo Plugin
+--
+-- This is a demonstration plugin which will not be installed as part of
+-- Gitano. Its purpose is to show the way that a plugin can add commands
+-- to Gitano if it so desires.
+--
+-- Copyright 2014 Daniel Silverstone <daniel.silverstone@codethink.co.uk>
+
+local gitano = require "gitano"
+
+local demo_short_help = "Simple demo command"
+local demo_helptext = [[
+This is the long help text for the demonstration plugin 'demo' command.
+
+Enjoy.
+]]
+
+local function demo_validate(config, repo, cmdline)
+ if #cmdline ~= 2 then
+ gitano.log.error("usage: demo <reponame>")
+ return false
+ end
+ return true
+end
+
+local function demo_prep(config, repo, cmdline, context)
+ context.operation = "read"
+ return config.repo:run_lace(context)
+end
+
+local function demo_run(config, repo, cmdline, env)
+ local p = gitano.log.stdout
+ p(("Repo is: %s"):format(tostring(repo)))
+ for i, n in ipairs(cmdline) do
+ p(("cmdline[%d] is: %s"):format(i, tostring(n)))
+ end
+ for k, v in pairs(env) do
+ p(("env[%s] is: %s"):format(k, tostring(v)))
+ end
+ return "exit", 0
+end
+
+assert(gitano.command.register("demo",
+ demo_short_help, demo_helptext,
+ demo_validate, demo_prep, demo_run,
+ true, false, false))