From 3ba9e143a2fbfd6f8c882d5fae51f43099c0ad66 Mon Sep 17 00:00:00 2001
From: Matthew Holt <mholt@users.noreply.github.com>
Date: Thu, 5 Sep 2019 14:58:07 -0600
Subject: [PATCH] cli: Fix run and start when no config file is available

---
 cmd/main.go | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/cmd/main.go b/cmd/main.go
index e2f123393..3b44a855e 100644
--- a/cmd/main.go
+++ b/cmd/main.go
@@ -114,10 +114,17 @@ func loadConfig(configFile, adapterName string) ([]byte, error) {
 		cfgAdapter = caddyconfig.GetAdapter("caddyfile")
 		if cfgAdapter != nil {
 			config, err = ioutil.ReadFile("Caddyfile")
-			if err != nil && !os.IsNotExist(err) {
+			if os.IsNotExist(err) {
+				// okay, no default Caddyfile; pretend like this never happened
+				cfgAdapter = nil
+				err = nil
+			} else if err != nil {
+				// default Caddyfile exists, but error reading it
 				return nil, fmt.Errorf("reading default Caddyfile: %v", err)
+			} else {
+				// success reading default Caddyfile
+				configFile = "Caddyfile"
 			}
-			configFile = "Caddyfile"
 		}
 	}