本文整理汇总了Golang中v/io/jiri/profiles.Target.OS方法的典型用法代码示例。如果您正苦于以下问题:Golang Target.OS方法的具体用法?Golang Target.OS怎么用?Golang Target.OS使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类v/io/jiri/profiles.Target
的用法示例。
在下文中一共展示了Target.OS方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RunMojoShell
func RunMojoShell(mojoUrl, configFile string, configAliases map[string]string, argsFor map[string][]string, target profiles.Target) *exec.Cmd {
// ensure the profiles are loaded
jirix, err := jiri.NewX(cmdline.EnvFromOS())
if err != nil {
panic(err)
}
rd, err := profilesreader.NewReader(jirix, profilesreader.UseProfiles, filepath.Join(jirix.Root, ".jiri_root", "profile_db"))
if err != nil {
panic(err)
}
envslice := rd.EnvFromProfile(mojoProfileName(), target)
env := envvar.VarsFromSlice(envslice)
jiri.ExpandEnv(jirix, env)
var mojoDevtools, mojoShell, mojoServices string
for _, e := range env.ToSlice() {
parts := strings.SplitN(e, "=", 2)
switch parts[0] {
case "MOJO_DEVTOOLS":
mojoDevtools = parts[1]
case "MOJO_SHELL":
mojoShell = parts[1]
case "MOJO_SERVICES":
mojoServices = parts[1]
}
}
args := []string{
mojoUrl,
"--config-file", configFile,
"--shell-path", mojoShell,
"--enable-multiprocess"}
if target.OS() == "android" {
args = append(args, "--android")
args = append(args, "--origin", mojoServices)
}
for alias, value := range configAliases {
args = append(args, "--config-alias", fmt.Sprintf("%s=%s", alias, value))
}
for key, value := range argsFor {
args = append(args, fmt.Sprintf("--args-for=%s %s", key, strings.Join(value, " ")))
}
return exec.Command(filepath.Join(mojoDevtools, "mojo_run"), args...)
}