From 507c8b6ed2910da07ea48e829b9e796f41b04168 Mon Sep 17 00:00:00 2001 From: sammy <38820196+TorchedSammy@users.noreply.github.com> Date: Sat, 1 May 2021 01:07:55 -0400 Subject: [PATCH 1/3] chore: update manifest files --- go.mod | 4 +--- go.sum | 12 ++---------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 95e264a..3cc8f3d 100644 --- a/go.mod +++ b/go.mod @@ -3,11 +3,9 @@ module hilbish go 1.16 require ( - github.com/Hilbis/Hilbiline v0.0.0-20210416123506-f1b20c1c66e4 - github.com/akamensky/argparse v1.2.2 github.com/bobappleyard/readline v0.0.0-20150707195538-7e300e02d38e github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 - github.com/rivo/uniseg v0.2.0 // indirect + github.com/pborman/getopt v1.1.0 github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/sys v0.0.0-20210415045647-66c3f260301c // indirect diff --git a/go.sum b/go.sum index 3bdc9e2..f682465 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,3 @@ -github.com/Hilbis/Hilbiline v0.0.0-20210416123506-f1b20c1c66e4 h1:S9ulYwm5MUp02mEKnbDhVGjVBkdYV7/tmgEO1g3Q+Z8= -github.com/Hilbis/Hilbiline v0.0.0-20210416123506-f1b20c1c66e4/go.mod h1:mp9I7lvFoZ3ldAeydCzISakl6VdQYyrR8vVjmnKGqDo= -github.com/akamensky/argparse v1.2.2 h1:P17T0ZjlUNJuWTPPJ2A5dM1wxarHgHqfYH+AZTo2xQA= -github.com/akamensky/argparse v1.2.2/go.mod h1:S5kwC7IuDcEr5VeXtGPRVZ5o/FdhcMlQz4IZQuw64xA= github.com/bobappleyard/readline v0.0.0-20150707195538-7e300e02d38e h1:4G8AYOOwZdDWOiJR6D6JXaFmj5BDS7c5D5PyqsG/+Hg= github.com/bobappleyard/readline v0.0.0-20150707195538-7e300e02d38e/go.mod h1:fmqtV+Wqx0uFYLN1F4VhjZdtT56Dr8c3yA7nALFsw/Q= github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 h1:xz6Nv3zcwO2Lila35hcb0QloCQsc38Al13RNEzWRpX4= @@ -19,13 +15,10 @@ github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow= -github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/pborman/getopt v1.1.0 h1:eJ3aFZroQqq0bWmraivjQNt6Dmm5M0h2JcDW38/Azb0= +github.com/pborman/getopt v1.1.0/go.mod h1:FxXoW1Re00sQG/+KIkuSqRL/LwQgSkv7uyac+STFsbk= github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -40,7 +33,6 @@ golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201029080932-201ba4db2418/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210414055047-fe65e336abe0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210415045647-66c3f260301c h1:6L+uOeS3OQt/f4eFHXZcTxeZrGCuz+CLElgEBjbcTA4= golang.org/x/sys v0.0.0-20210415045647-66c3f260301c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20191110171634-ad39bd3f0407/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= From e7dcbd5a9541f24bb3ffd712d26303e683c953fe Mon Sep 17 00:00:00 2001 From: sammy <38820196+TorchedSammy@users.noreply.github.com> Date: Sat, 1 May 2021 01:08:20 -0400 Subject: [PATCH 2/3] feat: add string.split function --- preload.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/preload.lua b/preload.lua index a5d087f..2776122 100644 --- a/preload.lua +++ b/preload.lua @@ -65,3 +65,22 @@ do end end) end + +-- Function additions to Lua standard library +function string.split(str, delimiter) + local result = {} + local from = 1 + + local delim_from, delim_to = string.find(str, delimiter, from) + + while delim_from do + table.insert(result, string.sub(str, from, delim_from - 1)) + from = delim_to + 1 + delim_from, delim_to = string.find(str, delimiter, from) + end + + table.insert(result, string.sub(str, from)) + + return result +end + From 89fc544545aa25955e37898594b87844651c6a1e Mon Sep 17 00:00:00 2001 From: sammy <38820196+TorchedSammy@users.noreply.github.com> Date: Sat, 1 May 2021 01:08:55 -0400 Subject: [PATCH 3/3] feat: switch to getopt library and add running lua source files from cli --- main.go | 55 +++++++++++++++++++------------------------------------ 1 file changed, 19 insertions(+), 36 deletions(-) diff --git a/main.go b/main.go index fdaa1bc..7551895 100644 --- a/main.go +++ b/main.go @@ -10,13 +10,13 @@ import ( "hilbish/golibs/bait" - "github.com/akamensky/argparse" + "github.com/pborman/getopt" "github.com/bobappleyard/readline" "github.com/yuin/gopher-lua" "golang.org/x/term" ) -const version = "0.4.0-dev.3" +const version = "0.4.0-dev.4" var ( l *lua.LState @@ -38,44 +38,20 @@ func main() { homedir, _ = os.UserHomeDir() defaultconfpath := homedir + "/.hilbishrc.lua" - parser := argparse.NewParser("hilbish", "A shell for lua and flower lovers") - verflag := parser.Flag("v", "version", &argparse.Options{ - Required: false, - Help: "Prints Hilbish version", - }) - setshflag := parser.Flag("S", "set-shell-env", &argparse.Options{ - Required: false, - Help: "Sets $SHELL to Hilbish's executed path", - }) - cmdflag := parser.String("c", "command", &argparse.Options{ - Required: false, - // TODO: Help: "", - }) - configflag := parser.String("C", "config", &argparse.Options{ - Required: false, - Help: "Sets the path to Hilbish's config", - Default: defaultconfpath, - }) +// parser := argparse.NewParser("hilbish", "A shell for lua and flower lovers") + verflag := getopt.BoolLong("version", 'v', "Prints Hilbish version") + setshflag := getopt.BoolLong("setshellenv", 'S', "Sets $SHELL to Hilbish's executed path") + cmdflag := getopt.StringLong("command", 'c', "", /*TODO: Help description*/ "") + configflag := getopt.StringLong("config", 'C', defaultconfpath, "Sets the path to Hilbish's config") // loginshflag // TODO: issue #37 - _ = parser.Flag("l", "login", &argparse.Options{ - Required: false, - Help: "Makes Hilbish act like a login shell", - }) - interactiveflag := parser.Flag("i", "interactive", &argparse.Options{ - Required: false, - Help: "Force Hilbish to be an interactive shell", - }) + _ = getopt.BoolLong("login", 'l', "Makes Hilbish act like a login shell") + interactiveflag := getopt.BoolLong("interactive", 'i', "Force Hilbish to be an interactive shell") - err := parser.Parse(os.Args) - // If invalid flags or --help/-h, - if err != nil { - // Print usage - fmt.Print(parser.Usage(err)) - os.Exit(0) - } + getopt.Parse() + args := getopt.Args() - if *cmdflag == "" || *interactiveflag { + if *cmdflag != "" || *interactiveflag { interactive = true } @@ -120,6 +96,13 @@ func main() { readline.LoadHistory(homedir + "/.hilbish-history") RunInput(*cmdflag) + if len(args) > 0 { + err := l.DoFile(args[0]) + if err != nil { + fmt.Fprintln(os.Stderr, err) + } + } + for interactive { running = false