V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
PeterYang1996
V2EX  ›  程序员

写了个命令行的脚手架,感觉还挺好使

  •  
  •   PeterYang1996 · May 18, 2022 · 1632 views
    This topic created in 1444 days ago, the information mentioned may be changed or developed.

    gostage

    gostage 是一个快速搭建常驻服务的命令行脚手架。

    安装

    go get github.com/PeterYangs/gostage
    

    快速开始

    编写一个每秒往一个文件中写入一行文本的服务

    package main
    import (
    	"context"
    	"fmt"
    	"github.com/PeterYangs/gostage"
    	"os"
    	"time"
    )
    func main() {
    	g := gostage.NewStage(context.Background())
    	//绑定主服务逻辑
    	g.StartFunc(func(st *gostage.Stage) error {
    		//打开文件
    		file, err := os.OpenFile("word.txt", os.O_CREATE|os.O_RDWR, 0644)
    		if err != nil {
    			return err
    		}
    		//计数
    		index := 0
    		defer file.Close()
    		for {
    			select {
    			case <-st.GetCxt().Done():
    				return nil
    			default:
    				//打印计数到终端
    				fmt.Println(index)
    				//每秒写入一行文本
    				time.Sleep(1 * time.Second)
    				file.Write([]byte("word\n"))
    				index++
    			}
    		}
    	})
    	err := g.Run()
    	if err != nil {
    		fmt.Println(err)
    	}
    }
    

    启动

    go run stage.go 或 go run stage.go start
    

    守护进程

    go  go run stage.go start -d
    

    停止

    go run stage.go stop
    

    帮助

    go run stage.go help
    

    地址: https://github.com/PeterYangs/gostage

    lesismal
        1
    lesismal  
       May 18, 2022
    读君一段 go ,似读一段 go
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2506 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 12:20 · PVG 20:20 · LAX 05:20 · JFK 08:20
    ♥ Do have faith in what you're doing.