From e67dfbdaa825779d5363edbd9c1f7c4fff0cc970 Mon Sep 17 00:00:00 2001
From: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
Date: Mon, 27 Jul 2020 21:52:56 +0800
Subject: [PATCH] Refine: exit with exit code 1

---
 main.go | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/main.go b/main.go
index 8cb90b83..055b6294 100644
--- a/main.go
+++ b/main.go
@@ -272,7 +272,7 @@ func main() {
 		goPath, envErr := getRuntimeEnv("GOPATH")
 		if envErr != nil {
 			fmt.Println("Failed: please set '$GOPATH' manually, or use 'datapath' option to specify the path to your custom 'data' directory")
-			return
+			os.Exit(1)
 		}
 		if goPath == "" {
 			goPath = build.Default.GOPATH
@@ -283,7 +283,7 @@ func main() {
 	}
 	if err != nil {
 		fmt.Println("Failed: ", err)
-		return
+		os.Exit(1)
 	}
 	fmt.Println("Use domain lists in", dir)
 
@@ -304,19 +304,19 @@ func main() {
 	})
 	if err != nil {
 		fmt.Println("Failed: ", err)
-		return
+		os.Exit(1)
 	}
 	protoList := new(router.GeoSiteList)
 	for _, list := range ref {
 		pl, err := ParseList(list, ref)
 		if err != nil {
 			fmt.Println("Failed: ", err)
-			return
+			os.Exit(1)
 		}
 		site, err := pl.toProto()
 		if err != nil {
 			fmt.Println("Failed: ", err)
-			return
+			os.Exit(1)
 		}
 		protoList.Entry = append(protoList.Entry, site)
 	}
@@ -324,11 +324,12 @@ func main() {
 	protoBytes, err := proto.Marshal(protoList)
 	if err != nil {
 		fmt.Println("Failed:", err)
-		return
+		os.Exit(1)
 	}
-	if err := ioutil.WriteFile("dlc.dat", protoBytes, 0777); err != nil {
+	if err := ioutil.WriteFile("dlc.dat", protoBytes, 0644); err != nil {
 		fmt.Println("Failed: ", err)
+		os.Exit(1)
 	} else {
-		fmt.Println("dlc.dat has been generated successfully in the directory. You can rename 'dlc.dat' to 'geosite.dat' and use it in V2Ray.")
+		fmt.Println("dlc.dat has been generated successfully in current directory. You can rename 'dlc.dat' to 'geosite.dat' and use it in V2Ray.")
 	}
 }