nali在pipe中配合其他命令使用的时候,如果在结尾,比如 command | nali,颜色输出正常;但是如果在中间使用,会导致输出结果没有颜色,比如 command1 | nali | command2。
我大概看了一下,是因为nali使用的颜色库发现输出的设备不是Terminal就变成了无色模式,建议增加一个一直输出颜色的选项,让nali在pipe中间使用的时候也可以输出颜色。大概意思如下代码所示:
diff --git a/cmd/root.go b/cmd/root.go
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -62,6 +62,10 @@ Find document on: https://github.com/zu1k/nali
Run: func(cmd *cobra.Command, args []string) {
gbk, _ := cmd.Flags().GetBool("gbk")
isJson, _ := cmd.Flags().GetBool("json")
+ isAlwaysColor, _ := cmd.Flags().GetBool("alwaysColor")
+ if isAlwaysColor {
+ color.NoColor = !isAlwaysColor
+ }
if len(args) == 0 {
stdin := bufio.NewScanner(os.Stdin)
@@ -102,4 +106,5 @@ func Execute() {
func init() {
rootCmd.Flags().Bool("gbk", false, "Use GBK decoder")
rootCmd.Flags().BoolP("json", "j", false, "Output in JSON format")
+ rootCmd.Flags().BoolP("alwaysColor", "c", false, "Always output with color.")
}
nali在pipe中配合其他命令使用的时候,如果在结尾,比如 command | nali,颜色输出正常;但是如果在中间使用,会导致输出结果没有颜色,比如 command1 | nali | command2。
我大概看了一下,是因为nali使用的颜色库发现输出的设备不是Terminal就变成了无色模式,建议增加一个一直输出颜色的选项,让nali在pipe中间使用的时候也可以输出颜色。大概意思如下代码所示: