ref: a2ba82de7407e3fc7e0b1c6aaf30ee9a35a4fff2
parent: a3d9d2db87066930398d89a3781bb2f3b06a0b83
author: Philip Silva <philip.silva@protonmail.com>
date: Sat Jul 10 07:01:17 EDT 2021
More condensed cli options
--- a/.gitignore
+++ b/.gitignore
@@ -6,8 +6,9 @@
*.prof
*.swp
*.tgz
+*.gz
+*.bz2
~*
.DS_Store
-/cmd/browse/browse
-/cmd/jsfs/jsfs
-main.js
+/cmd/opossum/opossum
+/cmd/gojafs/gojafs
--- a/README.md
+++ b/README.md
@@ -25,30 +25,32 @@
hget https://curl.haxx.se/ca/cacert.pem > /sys/lib/tls/ca.pem
```
-### Binary
+Create mountpoint (only needed on 9legacy):
-A recent binary for amd64 and 386 can be downloaded from http://psilva.sdf.org/opossum.html
-
-### Compile from Source
-
```
-go install ./cmd/opossum
+mkdir /mnt/opossum
```
-There are various command line options, visible with `-h`, most importantly to see errors:
+### Binary
-```
-opossum '-quiet=false'
-```
+A binary for amd64 and 386 can be downloaded from http://psilva.sdf.org/opossum.html
-(`-quiet=false` produces a lot of output, consider turning on scroll since processing waits for that...)
+### Compile from Source
-or all messages:
+ go install ./cmd/opossum
-```
-opossum '-quiet=false' '-debug=true'
-```
+Command line options:
+ -h help
+ -v verbose
+ -vv print debug messages
+ -jsinsecure activate js
+ -cpuprofile filename create cpuprofile
+
+(-v and -vv produce a lot of output,
+consider turning on scroll since processing
+waits for that...)
+
`$font` is used to select the font.
## macOS
@@ -87,18 +89,11 @@
```
-Then try on Plan 9 with e.g.:
+Then it can be tested with:
```
-opossum '-experimentalJsInsecure=true' -startPage https://jqueryui.com/resources/demos/tabs/default.html
+opossum -jsinsecure https://jqueryui.com/resources/demos/tabs/default.html
```
-
-or macOS etc.:
-
-```
-opossum -experimentalJsInsecure=true -startPage https://jqueryui.com/resources/demos/tabs/default.html
-```
-
# TODO
--- a/browser/browser.go
+++ b/browser/browser.go
@@ -55,9 +55,8 @@
0b00001100, 0b01111000,
}
-var DebugDumpCSS *bool
-var ExperimentalJsInsecure *bool
-var EnableNoScriptTag *bool
+var ExperimentalJsInsecure bool
+var EnableNoScriptTag bool
var browser *Browser
var Style = style.Map{}@@ -664,7 +663,7 @@
return e.Consumed
}
- if !*ExperimentalJsInsecure {+ if !ExperimentalJsInsecure {return
}
@@ -1125,7 +1124,7 @@
el = InnerNodesToBox(r+1, b, n)
el.makeLink(href)
case "noscript":
- if *ExperimentalJsInsecure || !*EnableNoScriptTag {+ if ExperimentalJsInsecure || !EnableNoScriptTag {return
}
fallthrough
@@ -1366,7 +1365,7 @@
}
display = dui.Display
- if *ExperimentalJsInsecure {+ if ExperimentalJsInsecure { fs.Client = &http.Client{}fs.Fetcher = browser
}
--- a/browser/browser_test.go
+++ b/browser/browser_test.go
@@ -18,10 +18,6 @@
)
func init() {- quiet := false
- logger.Quiet = &quiet
- js := false
- ExperimentalJsInsecure = &js
logger.Init()
SetLogger(&logger.Logger{}) style.Init(nil, &logger.Logger{})@@ -141,12 +137,11 @@
}
func TestNilPanic(t *testing.T) {- //f, err := os.Open()
}
func TestNodeToBoxNoscript(t *testing.T) {enable := true
- EnableNoScriptTag = &enable
+ EnableNoScriptTag = enable
htm := `
<body>
<noscript>
--- a/browser/experimental_test.go
+++ b/browser/experimental_test.go
@@ -14,10 +14,6 @@
)
func init() {- quiet := false
- logger.Quiet = &quiet
- f := false
- js.DebugDumpJS = &f
js.SetLogger(&logger.Logger{})logger.Init()
SetLogger(&logger.Logger{})@@ -27,8 +23,6 @@
}
func TestAtom(t *testing.T) {- //var ui duit.UI
- //ui = &Atom{}}
func TestProcessJS2SkipFailure(t *testing.T) {--- a/browser/website.go
+++ b/browser/website.go
@@ -4,7 +4,6 @@
"github.com/mjl-/duit"
"golang.org/x/net/html"
"golang.org/x/text/encoding"
- "io/ioutil"
"net/url"
"github.com/psilva261/opossum"
"github.com/psilva261/opossum/browser/duitx"
@@ -39,7 +38,7 @@
var err error
doc, err = html.ParseWithOptions(
strings.NewReader(htm),
- html.ParseOptionEnableScripting(*ExperimentalJsInsecure),
+ html.ParseOptionEnableScripting(ExperimentalJsInsecure),
)
if err != nil {panic(err.Error())
@@ -61,9 +60,6 @@
style.MergeNodeMaps(nodeMap, nm)
} else { log.Errorf("Fetch CSS Rules failed: %v", err)- if *DebugDumpCSS {- ioutil.WriteFile("info.css", []byte(css), 0644)- }
}
}
@@ -81,7 +77,7 @@
// 3rd pass is only needed initially to load the scripts and set the goja VM
// state. During subsequent calls from click handlers that state is kept.
var scripts []string
- if *ExperimentalJsInsecure && layouting != ClickRelayout {+ if ExperimentalJsInsecure && layouting != ClickRelayout { log.Printf("3rd pass") nt := nodes.NewNodeTree(doc, style.Map{}, nodeMap, nil)jsSrcs := js.Srcs(nt)
--- a/cmd/gojafs/domino/domino.go
+++ b/cmd/gojafs/domino/domino.go
@@ -23,7 +23,6 @@
"time"
)
-var DebugDumpJS *bool
var log *logger.Logger
var timeout = 60*time.Second
@@ -157,10 +156,6 @@
SCRIPT := domIntf + script
if !initial {SCRIPT = script
- }
-
- if *DebugDumpJS {- ioutil.WriteFile("main.js", []byte(SCRIPT), 0644)}
ready := make(chan goja.Value)
--- a/cmd/gojafs/domino/domino_test.go
+++ b/cmd/gojafs/domino/domino_test.go
@@ -20,10 +20,6 @@
`
func init() {- f := false
- t := true
- DebugDumpJS = &t
- logger.Quiet = &f
logger.Init()
log = &logger.Logger{Debug: true}}
--- a/cmd/gojafs/main.go
+++ b/cmd/gojafs/main.go
@@ -31,10 +31,7 @@
)
func init() {- f := false
- t := true
- domino.DebugDumpJS = &f
- logger.Quiet = &t
+ logger.Quiet = true
logger.Init()
log = &logger.Logger{Debug: true}domino.SetLogger(log)
@@ -46,7 +43,6 @@
}
func Main(r io.Reader, w io.Writer) (err error) {- log.Infof("Main...\n")u, err := user.Current()
if err != nil { return fmt.Errorf("get user: %v", err)--- a/cmd/opossum/main.go
+++ b/cmd/opossum/main.go
@@ -2,7 +2,6 @@
import (
"9fans.net/go/draw"
- "flag"
"fmt"
"image"
"os"
@@ -21,21 +20,15 @@
"github.com/mjl-/duit"
)
-const debugPrintHtml = false
-
var dui *duit.DUI
var log *logger.Logger
-var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")-var startPage = flag.String("startPage", "http://9p.io", "")-var dbg = flag.Bool("debug", false, "show debug logs")+var cpuprofile string
+var startPage string = "http://9p.io"
+var dbg bool
func init() {- browser.DebugDumpCSS = flag.Bool("debugDumpCSS", false, "write css to info.css")- js.DebugDumpJS = flag.Bool("debugDumpJS", false, "write js to main.js")- browser.ExperimentalJsInsecure = flag.Bool("experimentalJsInsecure", false, "DO NOT ACTIVATE UNLESS INSTRUCTED OTHERWISE")- browser.EnableNoScriptTag = flag.Bool("enableNoScriptTag", false, "enable noscript tag")- logger.Quiet = flag.Bool("quiet", defaultQuietActive, "don't print info messages and non-fatal errors")+ browser.EnableNoScriptTag = false
}
func mainView(b *browser.Browser) []*duit.Kid {@@ -132,6 +125,7 @@
if err != nil { return fmt.Errorf("new dui: %w", err)}
+ dui.Debug = dbg
style.Init(dui, log)
browser.SetLogger(log)
@@ -141,7 +135,7 @@
opossum.SetLogger(log)
nodes.SetLogger(log)
- b := browser.NewBrowser(dui, *startPage)
+ b := browser.NewBrowser(dui, startPage)
b.Download = func(done chan int) chan string { go func() {<-done
@@ -167,12 +161,42 @@
}
}
+func usage() {+ fmt.Printf("usage: opossum [-v|-vv] [-h] [-jsinsecure] [-cpuprofile fn] [startPage]\n")+ os.Exit(1)
+}
+
func main() {- flag.Parse()
+ logger.Quiet = true
+ args := os.Args[1:]
+ for len(args) > 0 {+ switch args[0] {+ case "-vv":
+ logger.Quiet = false
+ dbg = true
+ args = args[1:]
+ case "-v":
+ logger.Quiet = false
+ args = args[1:]
+ case "-h":
+ usage()
+ args = args[1:]
+ case "-jsinsecure":
+ browser.ExperimentalJsInsecure = true
+ args = args[1:]
+ case "-cpuprofile":
+ cpuprofile, args = args[0], args[2:]
+ default:
+ if len(args) > 1 {+ usage()
+ }
+ startPage, args = args[0], args[1:]
+ }
+ }
logger.Init()
- if *cpuprofile != "" {- f, err := os.Create(*cpuprofile)
+ if cpuprofile != "" {+ f, err := os.Create(cpuprofile)
if err != nil {log.Fatal(err)
}
@@ -185,7 +209,7 @@
}
log = logger.Log
- log.Debug = *dbg
+ log.Debug = dbg
go9p.Verbose = log.Debug
done := make(chan os.Signal, 1)
--- a/cmd/opossum/main_plan9.go
+++ /dev/null
@@ -1,3 +1,0 @@
-package main
-
-const defaultQuietActive = true
--- a/cmd/opossum/main_unix.go
+++ /dev/null
@@ -1,5 +1,0 @@
-// +build !plan9
-
-package main
-
-const defaultQuietActive = false
--- a/img/img_test.go
+++ b/img/img_test.go
@@ -6,8 +6,6 @@
)
func init() {- f := false
- logger.Quiet = &f
logger.Init()
log = &logger.Logger{Debug: true} SetLogger(&logger.Logger{})--- a/js/js.go
+++ b/js/js.go
@@ -19,7 +19,6 @@
"time"
)
-var DebugDumpJS *bool
var log *logger.Logger
var timeout = 60*time.Second
--- a/js/js_test.go
+++ b/js/js_test.go
@@ -20,10 +20,6 @@
`
func init() {- f := false
- t := true
- DebugDumpJS = &t
- logger.Quiet = &f
logger.Init()
log = &logger.Logger{Debug: true}fs.SetLogger(log)
--- a/logger/logger.go
+++ b/logger/logger.go
@@ -10,7 +10,7 @@
// Sink for Go's log pkg
var Sink io.Writer
-var Quiet *bool
+var Quiet bool
var Log *Logger
var gl *goLog.Logger
@@ -17,7 +17,7 @@
func Init() {gl = goLog.New(os.Stderr, "", goLog.LstdFlags)
Log = &Logger{}- if *Quiet {+ if Quiet { Sink = &NullWriter{}goLog.SetOutput(Sink)
}
@@ -80,7 +80,7 @@
if severity == debug && !l.Debug {return
}
- if (severity != fatal && severity != flush) && *Quiet {+ if (severity != fatal && severity != flush) && Quiet {return
}
--- a/style/stylesheets_test.go
+++ b/style/stylesheets_test.go
@@ -10,8 +10,6 @@
)
func init() {- f := false
- logger.Quiet = &f
logger.Init()
log = &logger.Logger{Debug: true}}
--
⑨