V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PeterYang1996
V2EX  ›  程序员

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

  •  
  •   PeterYang1996 · 2022-05-18 17:28:13 +08:00 · 1034 次点击
    这是一个创建于 918 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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  
       2022-05-18 19:54:48 +08:00
    读君一段 go ,似读一段 go
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:16 · PVG 04:16 · LAX 12:16 · JFK 15:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.