mirror of
https://github.com/hymkor/lispect.git
synced 2026-08-28 04:46:59 -04:00
Refactor: split core functionality into separate package
This commit is contained in:
@@ -0,0 +1,28 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
|
||||||
|
"github.com/hymkor/lispect"
|
||||||
|
)
|
||||||
|
|
||||||
|
var version string
|
||||||
|
|
||||||
|
func mains(args []string) error {
|
||||||
|
if len(args) < 1 {
|
||||||
|
return fmt.Errorf("%s %s-%s-%s: script path required",
|
||||||
|
os.Args[0],
|
||||||
|
version,
|
||||||
|
runtime.GOOS,
|
||||||
|
runtime.GOARCH)
|
||||||
|
}
|
||||||
|
return lispect.RunFile(args[0], args)
|
||||||
|
}
|
||||||
|
func main() {
|
||||||
|
if err := mains(os.Args[1:]); err != nil {
|
||||||
|
fmt.Fprintln(os.Stderr, err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package main
|
package lispect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|||||||
@@ -1,17 +1,21 @@
|
|||||||
package main
|
package lispect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
|
||||||
|
|
||||||
"github.com/hymkor/gmnlisp"
|
"github.com/hymkor/gmnlisp"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version string
|
func RunFile(fname string, args []string) error {
|
||||||
|
script, err := os.ReadFile(fname)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return RunString(string(script), args)
|
||||||
|
}
|
||||||
|
|
||||||
func mains(args []string) error {
|
func RunString(script string, args []string) error {
|
||||||
term, err := NewTerm()
|
term, err := NewTerm()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -41,19 +45,6 @@ func mains(args []string) error {
|
|||||||
gmnlisp.NewSymbol("setenv"): gmnlisp.Function2(g.setenv),
|
gmnlisp.NewSymbol("setenv"): gmnlisp.Function2(g.setenv),
|
||||||
gmnlisp.NewSymbol("wait"): gmnlisp.Function1(g.wait),
|
gmnlisp.NewSymbol("wait"): gmnlisp.Function1(g.wait),
|
||||||
})
|
})
|
||||||
|
|
||||||
if len(args) <= 0 {
|
|
||||||
return fmt.Errorf("%s %s-%s-%s: script path required",
|
|
||||||
os.Args[0],
|
|
||||||
version,
|
|
||||||
runtime.GOOS,
|
|
||||||
runtime.GOARCH)
|
|
||||||
}
|
|
||||||
script, err := os.ReadFile(args[0])
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
posixArgv := []gmnlisp.Node{}
|
posixArgv := []gmnlisp.Node{}
|
||||||
for _, s := range args[1:] {
|
for _, s := range args[1:] {
|
||||||
posixArgv = append(posixArgv, gmnlisp.String(s))
|
posixArgv = append(posixArgv, gmnlisp.String(s))
|
||||||
@@ -69,14 +60,7 @@ func mains(args []string) error {
|
|||||||
})
|
})
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
_, err = lisp.Interpret(ctx, string(script))
|
_, err = lisp.Interpret(ctx, script)
|
||||||
cancel()
|
cancel()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
|
||||||
if err := mains(os.Args[1:]); err != nil {
|
|
||||||
fmt.Fprintln(os.Stderr, err.Error())
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package main
|
package lispect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
|||||||
Reference in New Issue
Block a user