本文整理匯總了Golang中github.com/eris-ltd/eris-cli/definitions.Do.Operations方法的典型用法代碼示例。如果您正苦於以下問題:Golang Do.Operations方法的具體用法?Golang Do.Operations怎麽用?Golang Do.Operations使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/eris-ltd/eris-cli/definitions.Do
的用法示例。
在下文中一共展示了Do.Operations方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: DefineAppActionService
func DefineAppActionService(do *definitions.Do, app *definitions.Contracts) error {
var cmd string
switch do.Name {
case "test":
cmd = app.AppType.TestCmd
case "deploy":
cmd = app.AppType.DeployCmd
default:
return fmt.Errorf("I do not know how to perform that task (%s)\nPlease check what you can do with contracts by typing [eris contracts].\n", do.Name)
}
// if manual, set task
if app.AppType.Name == "manual" {
switch do.Name {
case "test":
cmd = app.TestTask
case "deploy":
cmd = app.DeployTask
}
}
// task flag override
if do.Task != "" {
app.AppType = definitions.GulpApp()
cmd = do.Task
}
if cmd == "nil" {
return fmt.Errorf("I cannot perform that task against that app type.\n")
}
// build service that will run
do.Service.Name = app.Name + "_tmp_" + do.Name
do.Service.Image = app.AppType.BaseImage
do.Service.AutoData = true
do.Service.EntryPoint = app.AppType.EntryPoint
do.Service.Command = cmd
if do.Path != pwd {
do.Service.WorkDir = do.Path // do.Path is actually where the workdir inside the container goes
} else {
do.Service.WorkDir = filepath.Join(common.ErisContainerRoot, "apps", app.Name)
}
do.Service.User = "eris"
srv := definitions.BlankServiceDefinition()
srv.Service = do.Service
srv.Operations = do.Operations
loaders.ServiceFinalizeLoad(srv)
do.Service = srv.Service
do.Operations = srv.Operations
do.Operations.Follow = true
linkAppToChain(do, app)
if app.AppType.Name == "epm" {
prepareEpmAction(do, app)
}
// make data container and import do.Path to do.Path (if exists)
doData := definitions.NowDo()
doData.Name = do.Service.Name
doData.Operations = do.Operations
if do.Path != pwd {
doData.Destination = do.Path
} else {
doData.Destination = common.ErisContainerRoot
}
doData.Source = filepath.Join(common.DataContainersPath, doData.Name)
var loca string
if do.Path != pwd {
loca = filepath.Join(common.DataContainersPath, doData.Name, do.Path)
} else {
loca = filepath.Join(common.DataContainersPath, doData.Name, "apps", app.Name)
}
log.WithFields(log.Fields{
"path": do.Path,
"location": loca,
}).Debug("Creating app data container")
common.Copy(do.Path, loca)
if err := data.ImportData(doData); err != nil {
return err
}
do.Operations.DataContainerName = util.DataContainersName(doData.Name, doData.Operations.ContainerNumber)
log.Debug("App action built")
return nil
}
示例2: DefineDappActionService
func DefineDappActionService(do *definitions.Do, dapp *definitions.Contracts) error {
var cmd string
switch do.Name {
case "test":
cmd = dapp.DappType.TestCmd
case "deploy":
cmd = dapp.DappType.DeployCmd
default:
return fmt.Errorf("I do not know how to perform that task (%s)\nPlease check what you can do with contracts by typing [eris contracts].\n", do.Name)
}
// if manual, set task
if dapp.DappType.Name == "manual" {
switch do.Name {
case "test":
cmd = dapp.TestTask
case "deploy":
cmd = dapp.DeployTask
}
}
// task flag override
if do.Task != "" {
dapp.DappType = definitions.GulpDapp()
cmd = do.Task
}
if cmd == "nil" {
return fmt.Errorf("I cannot perform that task against that dapp type.\n")
}
// dapp-specific tests
if dapp.DappType.Name == "pyepm" {
if do.ConfigFile == "" {
return fmt.Errorf("The pyepm dapp type requires a --yaml flag for the package definition you would like to deploy.\n")
} else {
cmd = do.ConfigFile
}
}
// build service that will run
do.Service.Name = dapp.Name + "_tmp_" + do.Name
do.Service.Image = dapp.DappType.BaseImage
do.Service.AutoData = true
do.Service.EntryPoint = dapp.DappType.EntryPoint
do.Service.Command = cmd
if do.NewName != "" {
do.Service.WorkDir = do.NewName // do.NewName is actually where the workdir inside the container goes
}
do.Service.User = "eris"
srv := definitions.BlankServiceDefinition()
srv.Service = do.Service
srv.Operations = do.Operations
loaders.ServiceFinalizeLoad(srv)
do.Service = srv.Service
do.Operations = srv.Operations
do.Operations.Remove = true
linkDappToChain(do, dapp)
// make data container and import do.Path to do.NewName (if exists)
doData := definitions.NowDo()
doData.Name = do.Service.Name
doData.Operations = do.Operations
if do.NewName != "" {
doData.Path = do.NewName
}
loca := path.Join(common.DataContainersPath, doData.Name)
logger.Debugf("Creating Dapp Data Cont =>\t%s:%s\n", do.Path, loca)
common.Copy(do.Path, loca)
data.ImportData(doData)
do.Operations.DataContainerName = util.DataContainersName(doData.Name, doData.Operations.ContainerNumber)
logger.Debugf("DApp Action Built.\n")
return nil
}