Files
cftunnel/cmd/selfupdate.go
T
admin ddc893c030 feat: 功能完善 + 开源准备
- 新增 destroy/reset 命令(隧道删除+完全重置)
- 新增 version/update 命令(版本管理+自更新)
- 新增 selfupdate 模块(GitHub Releases 自动更新)
- 新增 goreleaser + release workflow(tag 自动发版)
- 新增 Makefile(版本号注入构建)
- 新增 Claude Code / OpenClaw Skills
- 脱敏: 示例域名改为 example.com
- 修正 init 权限引导(DNS 而非 DNS 设置)
2026-02-22 22:05:20 +08:00

36 lines
832 B
Go

package cmd
import (
"fmt"
"github.com/qingchencloud/cftunnel/internal/selfupdate"
"github.com/spf13/cobra"
)
func init() {
rootCmd.AddCommand(updateCmd)
}
var updateCmd = &cobra.Command{
Use: "update",
Short: "更新 cftunnel 到最新版本",
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println("正在检查更新...")
latest, err := selfupdate.LatestVersion()
if err != nil {
return fmt.Errorf("检查更新失败: %w", err)
}
if latest == "v"+Version || latest == Version {
fmt.Println("已是最新版本")
return nil
}
fmt.Printf("发现新版本: %s → %s\n", Version, latest)
fmt.Println("正在下载...")
if err := selfupdate.Update(latest); err != nil {
return fmt.Errorf("更新失败: %w", err)
}
fmt.Printf("已更新到 %s\n", latest)
return nil
},
}