aboutsummaryrefslogtreecommitdiffstats
path: root/cli/context.go
diff options
context:
space:
mode:
Diffstat (limited to 'cli/context.go')
-rw-r--r--cli/context.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/cli/context.go b/cli/context.go
new file mode 100644
index 0000000..b1037b0
--- /dev/null
+++ b/cli/context.go
@@ -0,0 +1,41 @@
+package cli
+
+import (
+ "strconv"
+)
+
+type Context struct {
+ args Arguments
+ handlers []*Handler
+}
+
+func (self Context) Args() Arguments {
+ return self.args
+}
+
+func (self Context) Handlers() []*Handler {
+ return self.handlers
+}
+
+func (self Context) FilterHandlers(prefix string) []*Handler {
+ return filterHandlers(self.handlers, prefix)
+}
+
+type Arguments map[string]string
+
+func (self Arguments) String(key string) string {
+ value, _ := self[key]
+ return value
+}
+
+func (self Arguments) Int64(key string) int64 {
+ value, _ := self[key]
+ n, _ := strconv.ParseInt(value, 10, 64)
+ return n
+}
+
+func (self Arguments) Bool(key string) bool {
+ value, _ := self[key]
+ b, _ := strconv.ParseBool(value)
+ return b
+}