From e74b8cce64a6946e20ff369c2888f2c90fef25bd Mon Sep 17 00:00:00 2001 From: "yakumo.izuru" Date: Wed, 14 May 2025 21:55:50 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B0=B4=E8=9B=99=E7=A5=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///srv/svn/repo/suwako/trunk@32 0b558ee1-521d-8b46-a41b-40029c97c055 --- Makefile | 35 +++++++++++++++++++---------------- cmd/root.go | 33 +++++++++++---------------------- go.mod | 2 +- main.go | 3 +-- suwako.1 | 7 +++++-- 5 files changed, 37 insertions(+), 43 deletions(-) diff --git a/Makefile b/Makefile index 02ad292..f57c4f5 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,25 @@ +GO ?= go +GOFLAGS ?= -v + PREFIX ?= /usr/local +BINDIR ?= ${PREFIX}/bin +MANDIR ?= ${PREFIX}/man -GOFLAGS ?= -v -ldflags "-w -X `go list`.Version=${VERSION} -X `go list`.Commit=${COMMIT} -X `go list`.Build=${BUILD}" -tags "static_build" +all: build -BRANCH = `git rev-parse --abbrev-ref HEAD` -BUILD = `git show -s --pretty=format:%cI` -COMMIT = `git rev-parse --short HEAD || echo "$COMMIT"` -VERSION = `git describe --abbrev=0 --tags 2>/dev/null || echo "$VERSION"` - -all: suwako - -suwako: - go build ${GOFLAGS} ./cmd/suwako +build: + ${GO} build ${GOFLAGS} clean: rm -f suwako -install: - install -Dm0755 suwako ${PREFIX}/bin/suwako - install -Dm0644 suwako.1 ${PREFIX}/share/man/man1/suwako.1 - install -Dm0644 suwako.conf.5 ${PREFIX}/share/man/man5/suwako.conf.5 +pre-install: + mkdir -p ${DESTDIR}${BINDIR} + mkdir -p ${DESTDIR}${MANDIR}/man1 + mkdir -p ${DESTDIR}${MANDIR}/man5 +install: pre-install + install -m0755 suwako ${DESTDIR}${BINDIR}/suwako + install -m0644 suwako.1 ${DESTDIR}${MANDIR}/man1/suwako.1 + install -m0644 suwako.conf.5 ${DESTDIR}${MANDIR}/man5/suwako.conf.5 uninstall: - rm -f ${PREFIX}/bin/suwako - rm -f ${PREFIX}/share/man/man1/suwako.1 + rm -f ${DESTDIR}${BINDIR}/suwako + rm -f ${DESTDIR}${MANDIR}/man1/suwako.1 + rm -f ${DESTDIR}${MANDIR}/man5/suwako.conf.5 diff --git a/cmd/root.go b/cmd/root.go index b87a2ca..000094a 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,6 +1,5 @@ /* Copyright © 2025 Izuru Yakumo - */ package cmd @@ -37,32 +36,24 @@ var rootCmd = &cobra.Command{ Short: "A client for SimplyTranslate with illusionary origins", Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - _split := fmt.Sprint(args) - text := fmt.Sprint(strings.Trim(_split, "[]")) - if len(output) == 0 { - log.Fatalf("\033[1;31m%s\033[0m\n", "No target language") - } + text_to_split := fmt.Sprint(args) + text := fmt.Sprint(strings.Trim(text_to_split, "[]")) var translate Translate encInput := url.PathEscape(text) queryURL := conf.endpoint + "/api/translate" + "?engine=" + conf.engine + "&from=" + input + "&to=" + output + "&text=" + encInput resp, err := http.Get(queryURL) - CheckErr(err) + cobra.CheckErr(err) defer resp.Body.Close() _ = json.NewDecoder(resp.Body).Decode(&translate) - CheckErr(err) + cobra.CheckErr(err) if len(translate.Output) == 0 { log.Fatalf("\033[1;31m%s\033[0m\n", "There was no output, maybe the endpoint is down?") } else { fmt.Printf("%v\n", translate.Output) } }, - Version: "3.0.0", -} -func CheckErr(err error) { - if err != nil { - log.Fatal(err) - } + Version: "3.0.1", } func Execute() { err := rootCmd.Execute() @@ -70,16 +61,15 @@ func Execute() { os.Exit(1) } } - func init() { cobra.OnInitialize(initConfig) - rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $XDG_CONFIG_HOME/suwako.ini)") - rootCmd.PersistentFlags().StringVarP(&input, "from", "f", "auto", "language to translate from (default is auto)") + rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "", "config file (default is $XDG_CONFIG_HOME/suwako.ini)") + rootCmd.PersistentFlags().StringVarP(&input, "from", "f", "auto", "language to translate from") rootCmd.PersistentFlags().StringVarP(&output, "to", "t", "", "target language") } func parseConfig(file string) error { cfg, err := ini.Load(file) - CheckErr(err) + cobra.CheckErr(err) conf.endpoint = cfg.Section("suwako").Key("endpoint").String() conf.engine = cfg.Section("suwako").Key("engine").String() @@ -91,10 +81,9 @@ func initConfig() { parseConfig(cfgFile) } else { - // Find home directory. - xdg, err := os.UserConfigDir() - CheckErr(err) - defaultCfgPath := xdg + "/suwako.ini" + xdg_config_home, err := os.UserConfigDir() + cobra.CheckErr(err) + defaultCfgPath := xdg_config_home + "/suwako.ini" parseConfig(defaultCfgPath) } diff --git a/go.mod b/go.mod index 12d2948..3c13f54 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module marisa.chaotic.ninja/suwako +module mahou-no-mori.yakumo.dev/suwako go 1.21.0 diff --git a/main.go b/main.go index 3337f7a..33dba7f 100644 --- a/main.go +++ b/main.go @@ -1,10 +1,9 @@ /* Copyright © 2025 Izuru Yakumo - */ package main -import "marisa.chaotic.ninja/suwako/cmd" +import "mahou-no-mori.yakumo.dev/suwako/cmd" func main() { cmd.Execute() diff --git a/suwako.1 b/suwako.1 index 487d245..30c5b0a 100644 --- a/suwako.1 +++ b/suwako.1 @@ -11,8 +11,11 @@ .Ar input .Sh DESCRIPTION Self-explanatory, besides, this was made as -a rewrite from a shell script that had curl -and awk for dependencies. +a rewrite from a shell script that had +.Xr curl 1 +and +.Xr awk 1 +for dependencies. It fully serves as a drop-in replacement. .Sh USAGE .Bl -tag -width 11n -compact