0

次のコマンド + サブコマンドがあります。

aws.go

// s3Cmd represents the out command
var s3Cmd = &cobra.Command{
    Use:   "s3",
    Short: "Uploads saved tarballs to an s3 bucket in aws",
    Long: `Uploads files to S3 using the credentials passed as arguments
    s3Bucket and the aws key and secret.`,
    RunE: func(cmd *cobra.Command, args []string) error {
        // some logic
    },
}

func init() {
    outCmd.AddCommand(s3Cmd)
}

出て行く

// outCmd represents the out command
var outCmd = &cobra.Command{
    Use:   "out",
    Short: "Consumes data out from RabbitMQ and stores to tarballs",
    Long: `Select your output directory and batchsize of the tarballs.
    When there are no more messages in the queue, press CTRL + c, to interrupt
    the consumption and save the last message buffers.`,
    RunE: func(cmd *cobra.Command, args []string) error {
        //logic
    },
}

func init() {
    RootCmd.AddCommand(outCmd)
}

実行するとgo run main.go out --args s3 --args

上記は s3Command 内のロジックを実行しますが、outCmd 内にあるものは実行しません。最初に outCommand ロジックを実行してから s3Cmd を最初に実行する方法はありますか?

4

1 に答える 1