From 9c217df9a8fe8b9d4c90f3c806340221ecee7148 Mon Sep 17 00:00:00 2001 From: Josias Date: Wed, 8 Dec 2021 00:29:25 +0000 Subject: [PATCH] Allow opening local files by relative path (#257) --- amfora.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/amfora.go b/amfora.go index 8183748..d675cac 100644 --- a/amfora.go +++ b/amfora.go @@ -4,6 +4,7 @@ import ( "fmt" "io" "os" + "path/filepath" "strings" "github.com/makeworld-the-better-one/amfora/bookmarks" @@ -74,8 +75,25 @@ func main() { // Initialize Amfora's settings display.Init(version, commit, builtBy) display.NewTab() + + // Load a URL, file, or render from stdin if len(os.Args[1:]) > 0 { - display.URL(os.Args[1]) + url := os.Args[1] + if !strings.Contains(url, "://") || strings.HasPrefix(url, "../") || strings.HasPrefix(url, "./") { + fileName := url + if _, err := os.Stat(fileName); err == nil { + if !strings.HasPrefix(fileName, "/") { + cwd, err := os.Getwd() + if err != nil { + fmt.Fprintf(os.Stderr, "error getting working directory path: %v\n", err) + os.Exit(1) + } + fileName = filepath.Join(cwd, fileName) + } + url = "file://" + fileName + } + } + display.URL(url) } else if !isStdinEmpty() { renderFromStdin() }