* Copyright (c) 2025 Bocloud Technologies Co., Ltd.
* installer is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain n copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
******************************************************************/
package remote
import (
"fmt"
"strings"
)
type Commands []string
type Command struct {
Cmds Commands `json:"cmds,omitempty"`
FileUp []File `json:"fileUp,omitempty"`
}
type File struct {
Src string `json:"src,omitempty"`
Dst string `json:"dst,omitempty"`
}
func (c *Command) String() string {
return strings.Join(c.Cmds, " && ")
}
func (c *Command) List() []string {
return c.Cmds
}
func (c *Command) Sudo(user string) {
if user != "root" {
for i, cmd := range c.Cmds {
if strings.HasPrefix(cmd, "sudo") {
continue
}
c.Cmds[i] = fmt.Sprintf("sudo %s", cmd)
}
}
}