Bladeren bron

Support color = auto

This is done using the test command as the stdlib lacks any way to
do this without using syscalls directly
morganamilo 6 jaren geleden
bovenliggende
commit
e78070ebbe
2 gewijzigde bestanden met toevoegingen van 11 en 2 verwijderingen
  1. 7 0
      exec.go
  2. 4 2
      main.go

+ 7 - 0
exec.go

@@ -121,3 +121,10 @@ func passToGit(dir string, _args ...string) *exec.Cmd {
 	cmd := exec.Command(config.GitBin, args...)
 	cmd := exec.Command(config.GitBin, args...)
 	return cmd
 	return cmd
 }
 }
+
+func isTty() bool {
+	cmd := exec.Command("test", "-t", "1")
+	cmd.Stdout = os.Stdout
+	err := cmd.Run()
+	return err == nil
+}

+ 4 - 2
main.go

@@ -146,12 +146,14 @@ func initAlpm() error {
 		return err
 		return err
 	}
 	}
 
 
-	if value, _, _ := cmdArgs.getArg("color"); value == "always" || value == "auto" {
+	if value, _, _ := cmdArgs.getArg("color"); value == "always" {
 		useColor = true
 		useColor = true
+	} else if value == "auto" {
+		useColor = isTty()
 	} else if value == "never" {
 	} else if value == "never" {
 		useColor = false
 		useColor = false
 	} else {
 	} else {
-		useColor = pacmanConf.Color
+		useColor = pacmanConf.Color && isTty()
 	}
 	}
 
 
 	return nil
 	return nil