Legend:
- Unmodified
- Added
- Removed
-
trunk/Makefile
r27 r32 1 GO ?= go 2 GOFLAGS ?= -v 3 1 4 PREFIX ?= /usr/local 5 BINDIR ?= ${PREFIX}/bin 6 MANDIR ?= ${PREFIX}/man 2 7 3 GOFLAGS ?= -v -ldflags "-w -X `go list`.Version=${VERSION} -X `go list`.Commit=${COMMIT} -X `go list`.Build=${BUILD}" -tags "static_build" 8 all: build 4 9 5 BRANCH = `git rev-parse --abbrev-ref HEAD` 6 BUILD = `git show -s --pretty=format:%cI` 7 COMMIT = `git rev-parse --short HEAD || echo "$COMMIT"` 8 VERSION = `git describe --abbrev=0 --tags 2>/dev/null || echo "$VERSION"` 9 10 all: suwako 11 12 suwako: 13 go build ${GOFLAGS} ./cmd/suwako 10 build: 11 ${GO} build ${GOFLAGS} 14 12 clean: 15 13 rm -f suwako 16 install: 17 install -Dm0755 suwako ${PREFIX}/bin/suwako 18 install -Dm0644 suwako.1 ${PREFIX}/share/man/man1/suwako.1 19 install -Dm0644 suwako.conf.5 ${PREFIX}/share/man/man5/suwako.conf.5 14 pre-install: 15 mkdir -p ${DESTDIR}${BINDIR} 16 mkdir -p ${DESTDIR}${MANDIR}/man1 17 mkdir -p ${DESTDIR}${MANDIR}/man5 18 install: pre-install 19 install -m0755 suwako ${DESTDIR}${BINDIR}/suwako 20 install -m0644 suwako.1 ${DESTDIR}${MANDIR}/man1/suwako.1 21 install -m0644 suwako.conf.5 ${DESTDIR}${MANDIR}/man5/suwako.conf.5 20 22 uninstall: 21 rm -f ${PREFIX}/bin/suwako 22 rm -f ${PREFIX}/share/man/man1/suwako.1 23 rm -f ${DESTDIR}${BINDIR}/suwako 24 rm -f ${DESTDIR}${MANDIR}/man1/suwako.1 25 rm -f ${DESTDIR}${MANDIR}/man5/suwako.conf.5 -
trunk/cmd/root.go
r31 r32 1 1 /* 2 2 Copyright © 2025 Izuru Yakumo <eternal-servant@yakumo.dev> 3 4 3 */ 5 4 package cmd … … 38 37 Args: cobra.MinimumNArgs(1), 39 38 Run: func(cmd *cobra.Command, args []string) { 40 _split := fmt.Sprint(args) 41 text := fmt.Sprint(strings.Trim(_split, "[]")) 42 if len(output) == 0 { 43 log.Fatalf("\033[1;31m%s\033[0m\n", "No target language") 44 } 39 text_to_split := fmt.Sprint(args) 40 text := fmt.Sprint(strings.Trim(text_to_split, "[]")) 45 41 var translate Translate 46 42 encInput := url.PathEscape(text) 47 43 queryURL := conf.endpoint + "/api/translate" + "?engine=" + conf.engine + "&from=" + input + "&to=" + output + "&text=" + encInput 48 44 resp, err := http.Get(queryURL) 49 CheckErr(err)45 cobra.CheckErr(err) 50 46 defer resp.Body.Close() 51 47 52 48 _ = json.NewDecoder(resp.Body).Decode(&translate) 53 CheckErr(err)49 cobra.CheckErr(err) 54 50 if len(translate.Output) == 0 { 55 51 log.Fatalf("\033[1;31m%s\033[0m\n", "There was no output, maybe the endpoint is down?") … … 58 54 } 59 55 }, 60 Version: "3.0.0", 61 } 62 func CheckErr(err error) { 63 if err != nil { 64 log.Fatal(err) 65 } 56 Version: "3.0.1", 66 57 } 67 58 func Execute() { … … 71 62 } 72 63 } 73 74 64 func init() { 75 65 cobra.OnInitialize(initConfig) 76 rootCmd.PersistentFlags().StringVar (&cfgFile, "config", "", "config file (default is $XDG_CONFIG_HOME/suwako.ini)")77 rootCmd.PersistentFlags().StringVarP(&input, "from", "f", "auto", "language to translate from (default is auto)")66 rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "", "config file (default is $XDG_CONFIG_HOME/suwako.ini)") 67 rootCmd.PersistentFlags().StringVarP(&input, "from", "f", "auto", "language to translate from") 78 68 rootCmd.PersistentFlags().StringVarP(&output, "to", "t", "", "target language") 79 69 } 80 70 func parseConfig(file string) error { 81 71 cfg, err := ini.Load(file) 82 CheckErr(err)72 cobra.CheckErr(err) 83 73 84 74 conf.endpoint = cfg.Section("suwako").Key("endpoint").String() … … 92 82 93 83 } else { 94 // Find home directory. 95 xdg, err := os.UserConfigDir() 96 CheckErr(err) 97 defaultCfgPath := xdg + "/suwako.ini" 84 xdg_config_home, err := os.UserConfigDir() 85 cobra.CheckErr(err) 86 defaultCfgPath := xdg_config_home + "/suwako.ini" 98 87 parseConfig(defaultCfgPath) 99 88 } -
trunk/go.mod
r31 r32 1 module ma risa.chaotic.ninja/suwako1 module mahou-no-mori.yakumo.dev/suwako 2 2 3 3 go 1.21.0 -
trunk/main.go
r31 r32 1 1 /* 2 2 Copyright © 2025 Izuru Yakumo <eternal-servant@yakumo.dev> 3 4 3 */ 5 4 package main 6 5 7 import "ma risa.chaotic.ninja/suwako/cmd"6 import "mahou-no-mori.yakumo.dev/suwako/cmd" 8 7 9 8 func main() { -
trunk/suwako.1
r31 r32 12 12 .Sh DESCRIPTION 13 13 Self-explanatory, besides, this was made as 14 a rewrite from a shell script that had curl 15 and awk for dependencies. 14 a rewrite from a shell script that had 15 .Xr curl 1 16 and 17 .Xr awk 1 18 for dependencies. 16 19 It fully serves as a drop-in replacement. 17 20 .Sh USAGE
Note:
See TracChangeset
for help on using the changeset viewer.