From d54271dade46ab926ceb8f12c1abf16aafd7f653 Mon Sep 17 00:00:00 2001 From: lixulun Date: Fri, 12 Jun 2026 17:49:32 +0800 Subject: [PATCH] remove shell scripts as "," command and auto rebuild The "go build" is fast but sticky when hit "," command, so I remove it. I think auto rebuild is not that useful, just fancy. --- main.go | 31 ------------------------------- readme.md | 13 +------------ 2 files changed, 1 insertion(+), 43 deletions(-) diff --git a/main.go b/main.go index 98fc27f..32aaaa1 100644 --- a/main.go +++ b/main.go @@ -1,29 +1,10 @@ package main import ( - "errors" "fmt" "os" ) -var commaSh = `#!/bin/sh - -script_path=$(realpath $0) -script_dir=$(dirname $script_path) - -cd $script_dir - -output=/tmp/commandgo - -# why not just using "go run ." ? -# Because "go run ." will inject GOBIN into PATH while compiling, -# and modifed PATH will pass into actual program. -# So the program doesn't have the same PATH as outside. -# It's not a acceptable behavior. - -go build -o $output . && $output $@ -` - func commandsUsage() string { return fmt.Sprintf( `commands: @@ -32,18 +13,6 @@ func commandsUsage() string { } func main() { - pwd, err := os.Getwd() - if err != nil { - panic(fmt.Errorf("detect current directory failed! %w", err)) - } - target := pwd + string(os.PathSeparator) + "," - _, err = os.Stat(target) - if errors.Is(err, os.ErrNotExist) { - err := os.WriteFile(target, []byte(commaSh), 0755) - if err != nil { - panic(fmt.Errorf("write sh failed: %w", err)) - } - } if len(os.Args) >= 2 { switch os.Args[1] { case "path": diff --git a/readme.md b/readme.md index 7f15f3f..a2e2c45 100644 --- a/readme.md +++ b/readme.md @@ -7,16 +7,5 @@ Personal tools set written in Golang. 1. Clone this repository to somewhere 1. Add the root directory to *PATH* 1. Change directory to the root directory -1. Run `go run .` to generate "," command +1. Run `go build -o "," .` to generate "," command 1. Run "," command to see all commands - -"," command can auto rebuild if you change the code in this repository. -Actually it always builds each time you type it! Because `go build` is -very fast and it has cache, it's not a problem in terms of speed. - -## Q&A - -Q: Why generating "," shell script instead of putting it in repository? - -A: I like the repository keeps 100% Go source code. I tried writting "," -shell script as a Go source code with shebang, but it didn't work.