From 9a6a262606096b0392feab573c9a94f2ce3ee8fb Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Mon, 10 Mar 2014 12:42:31 +0000 Subject: Demonstration Plugin 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 --- plugins/demo.lua | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 plugins/demo.lua 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 + +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 ") + 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)) -- cgit v1.2.1