package soft

import (
	"fmt"

	"sunhpc/pkg/logger"

	"github.com/spf13/cobra"
	"go.uber.org/zap"
)

func NewSoftInstallCmd() *cobra.Command {
	cmd := &cobra.Command{
		Use:   "install [software]",
		Short: "安装软件",
		Long:  "在集群节点上安装指定软件",
		Args:  cobra.MinimumNArgs(1),
		RunE: func(cmd *cobra.Command, args []string) error {

			software := args[0]

			logger.Info("开始安装软件", zap.String("software", software))

			// TODO: 实现软件安装逻辑
			// 1. 检查软件包
			// 2. 分发到节点
			// 3. 执行安装

			fmt.Printf("✓ 软件 %s 安装完成\n", software)

			return nil
		},
	}

	// 添加安装命令的标志
	cmd.Flags().StringSlice("nodes", []string{}, "目标节点列表")
	cmd.Flags().String("version", "", "软件版本")
	cmd.Flags().Bool("force", false, "强制安装")

	return cmd
}
