summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go56
1 files changed, 45 insertions, 11 deletions
diff --git a/main.go b/main.go
index 0c1e7da..7ad9b4a 100644
--- a/main.go
+++ b/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "flag"
"fmt"
"io"
"log"
@@ -10,6 +11,9 @@ import (
"github.com/chzyer/readline"
)
+var cmdMode = flag.String("c", "", "")
+var helpMode = flag.Bool("h", false, "")
+
func main() {
conf, err := getConfig()
if err != nil {
@@ -22,11 +26,6 @@ func main() {
state := NewBrowserState(conf)
- rl, err := readline.New(Prompt)
- if err != nil {
- log.Fatal(err)
- }
-
marks, err := getMarks()
if err != nil {
log.Fatal(err)
@@ -45,11 +44,40 @@ func main() {
}
state.Identities = idents
+ flag.Parse()
+
+ if *helpMode {
+ if err := Help(state, "cli"); err != nil {
+ writeError(err.Error())
+ }
+ return
+ }
+
+ if *cmdMode != "" {
+ conf.Quiet = true
+ state.Quiet = true
+ if err := handleCmdLine(state, conf, *cmdMode); err != nil {
+ writeError(err.Error())
+ }
+ return
+ }
+
+ rl, err := readline.New(Prompt)
+ if err != nil {
+ log.Fatal(err)
+ }
+
if conf.VimKeys {
rl.SetVimMode(true)
}
state.Readline = rl
+ if urls := flag.Args(); len(urls) > 0 {
+ if err := Go(state, urls[0], conf); err != nil {
+ writeError(err.Error())
+ }
+ }
+
for {
rl.SetPrompt(Prompt)
line, err := rl.Readline()
@@ -60,15 +88,21 @@ func main() {
log.Fatal(err)
}
- for _, cmd := range strings.Split(line, ";") {
- if c, err := ParseCommand(strings.TrimSpace(cmd)); err != nil {
- writeError(err.Error())
- } else if err := RunCommand(conf, c, state); err != nil {
- writeError(err.Error())
- }
+ if err := handleCmdLine(state, conf, line); err != nil {
+ writeError(err.Error())
}
+ }
+}
+func handleCmdLine(state *BrowserState, conf *Config, line string) error {
+ for _, cmd := range strings.Split(line, ";") {
+ if c, err := ParseCommand(strings.TrimSpace(cmd)); err != nil {
+ return err
+ } else if err := RunCommand(conf, c, state); err != nil {
+ return err
+ }
}
+ return nil
}
const Prompt = promptStyle + "X-1" + ansiClear + "> "