diff options
Diffstat (limited to 'omode/mode.go')
| -rw-r--r-- | omode/mode.go | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/omode/mode.go b/omode/mode.go new file mode 100644 index 0000000..4bdfc45 --- /dev/null +++ b/omode/mode.go @@ -0,0 +1,81 @@ +package omode + +import ( + "fmt" + "os" + "path" +) + +// Mode used. +type Mode int + +// Possible modes. +const ( + Unknown Mode = iota + Server Mode = iota + TailClient Mode = iota + CatClient Mode = iota + GrepClient Mode = iota + MapClient Mode = iota + HealthClient Mode = iota +) + +// New returns the mode based on the mode string. +func New(modeStr string) Mode { + switch modeStr { + case "dserver": + return Server + case "server": + return Server + + case "dtail": + fallthrough + case "tail": + return TailClient + + case "grep": + fallthrough + case "dgrep": + return GrepClient + + case "cat": + fallthrough + case "dcat": + return CatClient + + case "map": + fallthrough + case "dmap": + return MapClient + + case "health": + return HealthClient + + default: + panic(fmt.Sprintf("Unknown mode: '%s'", modeStr)) + } +} + +// Default mode. +func Default() Mode { + return New(path.Base(os.Args[0])) +} + +func (m Mode) String() string { + switch m { + case Server: + return "server" + case TailClient: + return "tail" + case CatClient: + return "cat" + case GrepClient: + return "grep" + case MapClient: + return "map" + case HealthClient: + return "health" + default: + return "unknown" + } +} |
