snapshot before merge
This commit is contained in:
1 parent
06a5f3da4d
commit
671871e0b2
145 files changed
+9786
-59
No files matched your search
@@ -0,0 +1,71 @@
|
||||
import os
|
||||
|
||||
p = r"E:\GitHub\blog\write-go\cmd\writeserver\main.go"
|
||||
with open(p, "r", encoding="utf-8") as f:
|
||||
c = f.read()
|
||||
|
||||
# 1. Add logutil import
|
||||
old = '"write-server/internal/images"'
|
||||
new = '"write-server/internal/logutil"\n\t"write-server/internal/images"'
|
||||
c = c.replace(old, new, 1)
|
||||
|
||||
# 2. Replace main start to add logging
|
||||
old_func = 'func main() {\n\tconfig.Init()\n\trecycle.InitRecycleBin()'
|
||||
new_func = '''var log = logutil.Logger
|
||||
|
||||
func main() {
|
||||
\tlog.Info("WriteServer starting")
|
||||
\tconfig.Init()
|
||||
\trecycle.InitRecycleBin()
|
||||
|
||||
\tgo autoStartBot()'''
|
||||
c = c.replace(old_func, new_func, 1)
|
||||
|
||||
# 3. Append autoStartBot and helper at end of file
|
||||
auto_start = '''
|
||||
|
||||
func autoStartBot() {
|
||||
\ttime.Sleep(2 * time.Second)
|
||||
\tbotPort := 8017
|
||||
\tif helpersCheckPort(botPort) {
|
||||
\t\tlog.Info("bot-go already running", "port", botPort)
|
||||
\t\treturn
|
||||
\t}
|
||||
\tlog.Info("bot-go not responding, starting")
|
||||
\tpaths := []string{
|
||||
\t\tfilepath.Join(config.BLOG_ROOT, "bot-go", "writebot.exe"),
|
||||
\t\tfilepath.Join(config.BLOG_ROOT, "write-go", "writebot.exe"),
|
||||
\t}
|
||||
\tfor _, p := range paths {
|
||||
\t\tif _, err := os.Stat(p); err == nil {
|
||||
\t\t\tcmd := exec.Command(p)
|
||||
\t\t\tcmd.Dir = filepath.Dir(p)
|
||||
\t\t\tif err := cmd.Start(); err != nil {
|
||||
\t\t\t\tlog.Error("failed to start bot-go", "err", err)
|
||||
\t\t\t} else {
|
||||
\t\t\t\tlog.Info("bot-go started", "pid", cmd.Process.Pid)
|
||||
\t\t\t}
|
||||
\t\t\treturn
|
||||
\t\t}
|
||||
\t}
|
||||
}
|
||||
|
||||
func helpersCheckPort(port int) bool {
|
||||
\tconn, err := net.DialTimeout("tcp", fmt.Sprintf("127.0.0.1:%d", port), time.Second)
|
||||
\tif err != nil {
|
||||
\t\treturn false
|
||||
\t}
|
||||
\tconn.Close()
|
||||
\treturn true
|
||||
}
|
||||
'''
|
||||
c += auto_start
|
||||
|
||||
# 4. Ensure "net" is imported
|
||||
if '"net"' not in c[:c.find("func main")]:
|
||||
c = c.replace('import (\n\t"encoding/json"', 'import (\n\t"net"\n\t"encoding/json"', 1)
|
||||
|
||||
with open(p, "w", encoding="utf-8", newline="\n") as f:
|
||||
f.write(c)
|
||||
print("Patched write-server main.go")
|
||||
print("New file size:", len(c.splitlines()), "lines")
|
||||
Reference in new issue
Block a user