From 0f9e334a19e7224ee08b611107029b4cd86c0267 Mon Sep 17 00:00:00 2001 From: Philipp Tanlak Date: Mon, 4 Dec 2023 18:30:19 +0100 Subject: Support file imports for .txt and .json (#25) --- flyscrape.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'flyscrape.go') diff --git a/flyscrape.go b/flyscrape.go index 797d4c7..d7aa8f8 100644 --- a/flyscrape.go +++ b/flyscrape.go @@ -28,11 +28,20 @@ func Run(file string, overrides map[string]any) error { imports, wait := NewJSLibrary(client) defer wait() + pop, err := pushDir(file) + if err != nil { + return err + } + exports, err := Compile(string(src), imports) if err != nil { return fmt.Errorf("failed to compile script: %w", err) } + if err := pop(); err != nil { + return err + } + cfg := exports.Config() cfg = updateCfgMultiple(cfg, overrides) @@ -63,12 +72,21 @@ func Dev(file string, overrides map[string]any) error { imports, wait := NewJSLibrary(client) defer wait() + pop, err := pushDir(file) + if err != nil { + return err + } + exports, err := Compile(s, imports) if err != nil { printCompileErr(file, err) return nil } + if err := pop(); err != nil { + return err + } + cfg := exports.Config() cfg = updateCfgMultiple(cfg, overrides) cfg = updateCfg(cfg, "depth", 0) @@ -147,3 +165,21 @@ func updateCfgMultiple(cfg Config, updates map[string]any) Config { return []byte(c) } + +func pushDir(file string) (func() error, error) { + cwd, err := os.Getwd() + if err != nil { + return nil, fmt.Errorf("failed to get current working directory: %w", err) + } + if err := os.Chdir(filepath.Dir(file)); err != nil { + return nil, fmt.Errorf("failed to change working directory: %w", err) + } + pop := func() error { + if err := os.Chdir(cwd); err != nil { + return fmt.Errorf("failed to change working directory: %w", err) + } + return nil + } + return pop, nil + +} -- cgit v1.2.3