summaryrefslogtreecommitdiff
path: root/complete.go
diff options
context:
space:
mode:
authorEyal Posener <[email protected]>2017-05-23 07:33:14 +0300
committerEyal Posener <[email protected]>2017-05-23 07:33:14 +0300
commit1a4c871bd8a0eb5774646fa3b60ed0be42d65689 (patch)
tree4cfcd988cfafeb7e210d895dea8bfc0fa810e2e3 /complete.go
parentbae3fd94da57ecb9d04524c0b34895df0f86a1d1 (diff)
Fix installation
Fixes #36
Diffstat (limited to 'complete.go')
-rw-r--r--complete.go17
1 files changed, 14 insertions, 3 deletions
diff --git a/complete.go b/complete.go
index be0876e..1df6617 100644
--- a/complete.go
+++ b/complete.go
@@ -6,6 +6,7 @@
package complete
import (
+ "flag"
"fmt"
"os"
"strings"
@@ -36,11 +37,21 @@ func New(name string, command Command) *Complete {
}
}
-// Run get a command, get the typed arguments from environment
-// variable, and print out the complete options
+// Run runs the completion and add installation flags beforehand.
+// The flags are added to the main flag CommandLine variable.
+func (c *Complete) Run() bool {
+ c.AddFlags(nil)
+ flag.Parse()
+ return c.Complete()
+}
+
+// Complete a command from completion line in environment variable,
+// and print out the complete options.
// returns success if the completion ran or if the cli matched
// any of the given flags, false otherwise
-func (c *Complete) Run() bool {
+// For installation: it assumes that flags were added and parsed before
+// it was called.
+func (c *Complete) Complete() bool {
line, ok := getLine()
if !ok {
// make sure flags parsed,