diff --git a/unisub/main.go b/unisub/main.go index 20c2af4..c569917 100644 --- a/unisub/main.go +++ b/unisub/main.go @@ -8,22 +8,34 @@ import ( ) func main() { - flag.Parse() - char := flag.Arg(0) + var silent bool + flag.BoolVar(&silent, "silent", false, "enable silnet mode") + var urlEncodeOnly bool + flag.BoolVar(&urlEncodeOnly, "encode", false, "display only url econded string") + + flag.Parse() + if flag.NArg() < 1 { fmt.Println("usage: unisub ") return } - - subs, ok := translations[rune(char[0])] + + char := flag.Arg(0) + subs, ok := translations[rune(char[0])] if !ok { fmt.Println("no substitutions found") return } for _, s := range subs { - fmt.Printf("fallback: %c %U %s\n", s, s, url.QueryEscape(string(s))) + if silent { + fmt.Printf("%c\n", s) + } else if urlEncodeOnly { + fmt.Printf("%s\n", url.QueryEscape(string(s))) + } else { + fmt.Printf("fallback: %c %U %s\n", s, s, url.QueryEscape(string(s))) + } } for cp := 1; cp < 0x10FFFF; cp++ { @@ -33,11 +45,23 @@ func main() { } if strings.ToLower(string(s)) == char { - fmt.Printf("toLower: %c %U %s\n", s, s, url.QueryEscape(string(s))) + if silent { + fmt.Printf("%c\n", s) + } else if urlEncodeOnly { + fmt.Printf("%s\n", url.QueryEscape(string(s))) + } else { + fmt.Printf("toLower: %c %U %s\n", s, s, url.QueryEscape(string(s))) + } } if strings.ToUpper(string(s)) == char { - fmt.Printf("toUpper: %c %U %s\n", s, s, url.QueryEscape(string(s))) + if silent { + fmt.Printf("%c\n", s) + } else if urlEncodeOnly { + fmt.Printf("%s\n", url.QueryEscape(string(s))) + } else { + fmt.Printf("toUpper: %c %U %s\n", s, s, url.QueryEscape(string(s))) + } } } }