diff options
author | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2014-03-10 12:42:31 +0000 |
---|---|---|
committer | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2014-03-11 14:02:46 +0000 |
commit | 9a6a262606096b0392feab573c9a94f2ce3ee8fb (patch) | |
tree | 9932f1b3790cb5283f16e37226ec1108ce30b3ce /plugins | |
parent | 2cfb31e938bc94c2da2cdeb33c3bc69b04bfa932 (diff) | |
download | gitano-9a6a262606096b0392feab573c9a94f2ce3ee8fb.tar.gz |
Demonstration Pluginbaserock/danielsilverstone/S10632-plugin-support
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.lua | 46 |
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)) |