aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-07-20 19:49:08 +0000
committerFuwn <[email protected]>2021-07-20 19:49:08 +0000
commit1c3ed61e59fbcffd4c1429d83913d14b19a23d2c (patch)
tree388600d0b61e188700aac9990e1e5f801fbf1094
parentAdd -e flag to place a stylesheet externally rather than loading it inline (diff)
downloadcapybara-1c3ed61e59fbcffd4c1429d83913d14b19a23d2c.tar.xz
capybara-1c3ed61e59fbcffd4c1429d83913d14b19a23d2c.zip
Add ability to specify flags via environment
-rw-r--r--main.go39
1 files changed, 37 insertions, 2 deletions
diff --git a/main.go b/main.go
index c600985..e0a78f4 100644
--- a/main.go
+++ b/main.go
@@ -518,6 +518,12 @@ func proxyGemini(req gemini.Request, external bool, root *url.URL,
}
}
+func bindIfEnv(key string, do func()) {
+ if len(os.Getenv(key)) != 0 {
+ do()
+ }
+}
+
func main() {
var (
bind string = ":8080"
@@ -529,6 +535,24 @@ func main() {
if err != nil {
log.Fatal(err)
}
+
+ bindIfEnv("BIND", func() {
+ bind = os.Getenv("BIND")
+ })
+ bindIfEnv("CSS", func() {
+ external = false
+ cssContent, err := ioutil.ReadFile(os.Getenv("CSS"))
+ if err == nil {
+ css = string(cssContent)
+ } else {
+ log.Fatalf("Error opening custom CSS from '%s': %v", os.Getenv("CSS"), err)
+ }
+ })
+ bindIfEnv("CSS_EXTERNAL", func() {
+ external = true
+ css = os.Getenv("CSS_EXTERNAL")
+ })
+
for _, opt := range opts {
switch opt.Option {
case 'b':
@@ -548,10 +572,21 @@ func main() {
}
args := os.Args[optind:]
+ var (
+ envRoot string
+ root *url.URL
+ )
if len(args) != 1 {
- log.Fatalf("Usage: %s <gemini root>", os.Args[0])
+ envRoot = os.Getenv("ROOT")
+ if len(envRoot) == 0 {
+ log.Fatalf("Usage: %s <gemini root>", os.Args[0])
+ }
+ } else {
+ root, err = url.Parse(args[0])
+ }
+ if len(envRoot) != 0 {
+ root, err = url.Parse(envRoot)
}
- root, err := url.Parse(args[0])
if err != nil {
log.Fatal(err)
}