Changeset 32 in code for trunk


Ignore:
Timestamp:
May 14, 2025, 9:55:50 PM (3 weeks ago)
Author:
yakumo.izuru
Message:

水蛙神

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile

    r27 r32  
     1GO ?= go
     2GOFLAGS ?= -v
     3
    14PREFIX ?= /usr/local
     5BINDIR ?= ${PREFIX}/bin
     6MANDIR ?= ${PREFIX}/man
    27
    3 GOFLAGS ?= -v -ldflags "-w -X `go list`.Version=${VERSION} -X `go list`.Commit=${COMMIT} -X `go list`.Build=${BUILD}" -tags "static_build"
     8all: build
    49
    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
     10build:
     11        ${GO} build ${GOFLAGS}
    1412clean:
    1513        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
     14pre-install:
     15        mkdir -p ${DESTDIR}${BINDIR}
     16        mkdir -p ${DESTDIR}${MANDIR}/man1
     17        mkdir -p ${DESTDIR}${MANDIR}/man5
     18install: 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
    2022uninstall:
    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  
    11/*
    22Copyright © 2025 Izuru Yakumo <eternal-servant@yakumo.dev>
    3 
    43*/
    54package cmd
     
    3837        Args: cobra.MinimumNArgs(1),
    3938        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, "[]"))
    4541                var translate Translate
    4642                encInput := url.PathEscape(text)
    4743                queryURL := conf.endpoint + "/api/translate" + "?engine=" + conf.engine + "&from=" + input + "&to=" + output + "&text=" + encInput
    4844                resp, err := http.Get(queryURL)
    49                 CheckErr(err)
     45                cobra.CheckErr(err)
    5046                defer resp.Body.Close()
    5147
    5248                _ = json.NewDecoder(resp.Body).Decode(&translate)
    53                 CheckErr(err)
     49                cobra.CheckErr(err)
    5450                if len(translate.Output) == 0 {
    5551                        log.Fatalf("\033[1;31m%s\033[0m\n", "There was no output, maybe the endpoint is down?")
     
    5854                }
    5955        },
    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",
    6657}
    6758func Execute() {
     
    7162        }
    7263}
    73 
    7464func init() {
    7565        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")
    7868        rootCmd.PersistentFlags().StringVarP(&output, "to", "t", "", "target language")
    7969}
    8070func parseConfig(file string) error {
    8171        cfg, err := ini.Load(file)
    82         CheckErr(err)
     72        cobra.CheckErr(err)
    8373
    8474        conf.endpoint = cfg.Section("suwako").Key("endpoint").String()
     
    9282
    9383        } 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"
    9887                parseConfig(defaultCfgPath)
    9988        }
  • trunk/go.mod

    r31 r32  
    1 module marisa.chaotic.ninja/suwako
     1module mahou-no-mori.yakumo.dev/suwako
    22
    33go 1.21.0
  • trunk/main.go

    r31 r32  
    11/*
    22Copyright © 2025 Izuru Yakumo <eternal-servant@yakumo.dev>
    3 
    43*/
    54package main
    65
    7 import "marisa.chaotic.ninja/suwako/cmd"
     6import "mahou-no-mori.yakumo.dev/suwako/cmd"
    87
    98func main() {
  • trunk/suwako.1

    r31 r32  
    1212.Sh DESCRIPTION
    1313Self-explanatory, besides, this was made as
    14 a rewrite from a shell script that had curl
    15 and awk for dependencies.
     14a rewrite from a shell script that had
     15.Xr curl 1
     16and
     17.Xr awk 1
     18for dependencies.
    1619It fully serves as a drop-in replacement.
    1720.Sh USAGE
Note: See TracChangeset for help on using the changeset viewer.