1
0
Fork 0

Update to lynx v0.4.0
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Andinus 2020-04-17 18:41:09 +05:30
parent d5b95cbec7
commit 593a8ef24e
Signed by: andinus
GPG Key ID: B67D55D482A799FD
5 changed files with 48 additions and 62 deletions

2
go.mod
View File

@ -4,5 +4,5 @@ go 1.13
require (
golang.org/x/sys v0.0.0-20200406113430-c6e801f48ba2
tildegit.org/andinus/lynx v0.2.0
tildegit.org/andinus/lynx v0.4.0
)

2
go.sum
View File

@ -5,3 +5,5 @@ tildegit.org/andinus/lynx v0.1.0 h1:7YjyF8h7MBGKRgQZT0j0I3uHRPf3mI2GMiDujXVlLS0=
tildegit.org/andinus/lynx v0.1.0/go.mod h1:/PCNkKwfJ7pb6ziHa76a4gYp1R9S1Ro4ANjQwzSpBIk=
tildegit.org/andinus/lynx v0.2.0 h1:cBoAWqC/osZJE4VPdB0HhIEpMIC4A4eI9nEbHR/9Qvk=
tildegit.org/andinus/lynx v0.2.0/go.mod h1:/PCNkKwfJ7pb6ziHa76a4gYp1R9S1Ro4ANjQwzSpBIk=
tildegit.org/andinus/lynx v0.4.0 h1:bAxZLOdWy66+qJ3bDWjkbmJfCWTIOZ8hMGzYt7T7Bxk=
tildegit.org/andinus/lynx v0.4.0/go.mod h1:/PCNkKwfJ7pb6ziHa76a4gYp1R9S1Ro4ANjQwzSpBIk=

View File

@ -6,15 +6,18 @@ import (
"os"
"tildegit.org/andinus/grus/lexical"
"tildegit.org/andinus/lynx"
)
func grus() {
func main() {
initGrus()
if len(os.Args) == 1 {
fmt.Println("Usage: grus <word> <dictionaries>")
os.Exit(1)
}
version := "v0.3.0"
version := "v0.3.1"
// Print version if first argument is version.
if os.Args[1] == "version" {
@ -134,10 +137,49 @@ func grus() {
if !envVar["GRUS_SEARCH_ALL"] {
os.Exit(0)
}
}
}
func initGrus() {
// We need less permissions on these conditions.
if len(os.Args) == 1 ||
os.Args[1] == "version" ||
os.Args[1] == "env" {
err := lynx.PledgePromises("stdio")
panicOnErr(err)
} else {
err := lynx.PledgePromises("unveil stdio rpath")
panicOnErr(err)
unveil()
// Drop unveil from promises.
err = lynx.PledgePromises("stdio rpath")
panicOnErr(err)
}
}
func unveil() {
paths := make(map[string]string)
paths["/usr/share/dict"] = "r"
paths["/usr/local/share/dict"] = "r"
// Unveil user defined dictionaries.
if len(os.Args) >= 3 {
for _, dict := range os.Args[2:] {
paths[dict] = "r"
}
}
// This will not return error if the file doesn't exist.
err := lynx.UnveilPaths(paths)
panicOnErr(err)
// Block further unveil calls.
err = lynx.UnveilBlock()
panicOnErr(err)
}
func panicOnErr(err error) {
if err != nil {
panic(err)

View File

@ -1,51 +0,0 @@
// +build openbsd
package main
import (
"os"
"golang.org/x/sys/unix"
"tildegit.org/andinus/lynx"
)
func main() {
// We need less permissions on these conditions.
if len(os.Args) == 1 ||
os.Args[1] == "version" ||
os.Args[1] == "env" {
err := unix.PledgePromises("stdio")
panicOnErr(err)
} else {
err := unix.PledgePromises("unveil stdio rpath")
panicOnErr(err)
unveil()
// Drop unveil from promises.
err = unix.PledgePromises("stdio rpath")
panicOnErr(err)
}
grus()
}
func unveil() {
paths := make(map[string]string)
paths["/usr/share/dict"] = "r"
paths["/usr/local/share/dict"] = "r"
// Unveil user defined dictionaries.
if len(os.Args) >= 3 {
for _, dict := range os.Args[2:] {
paths[dict] = "r"
}
}
// This will not return error if the file doesn't exist.
err := lynx.UnveilPaths(paths)
panicOnErr(err)
// Block further unveil calls.
err = lynx.UnveilBlock()
panicOnErr(err)
}

View File

@ -1,7 +0,0 @@
// +build !openbsd
package main
func main() {
grus()
}