package main

import (
	client "client/internal"
	"client/internal/updater"
	"log"
	"os"
	"os/signal"
	"syscall"
)

const VERSION string = "version advanced"
const PROXY_URL string = "18.183.240.108:2345"                // 服务地址
const REMOTE_UPDATE_URL = "https://test.m2pool.com/api/lease" // 远程更新服务器地址

func main() {
	// 启动前检查更新
	log.Println("检查更新...")
	needRestart, err := updater.CheckAndUpdate(REMOTE_UPDATE_URL, VERSION)
	if err != nil {
		log.Printf("更新检查失败，继续运行当前版本：%v", err)
	} else if needRestart {
		log.Println("更新完成！请重启程序以使用新版本。")
		os.Exit(0)
	}

	// 在单独的 goroutine 中启动客户端逻辑
	go client.Star(PROXY_URL)

	// 监听系统信号，实现优雅退出
	sigCh := make(chan os.Signal, 1)
	signal.Notify(sigCh, os.Interrupt, syscall.SIGTERM)

	sig := <-sigCh
	log.Printf("收到退出信号: %v，客户端准备退出...", sig)
	// 停止客户端（包括持续挖矿）
	client.StopClient()
}
