本文整理匯總了Golang中github.com/ParsePlatform/parse-cli/parsecli.Env.Root方法的典型用法代碼示例。如果您正苦於以下問題:Golang Env.Root方法的具體用法?Golang Env.Root怎麽用?Golang Env.Root使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/ParsePlatform/parse-cli/parsecli.Env
的用法示例。
在下文中一共展示了Env.Root方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: setupSample
func (n *newCmd) setupSample(
e *parsecli.Env,
name string,
appConfig parsecli.AppConfig,
isNew bool,
nonInteractive bool,
) (bool, error) {
found := parsecli.IsProjectDir(parsecli.GetProjectRoot(e, e.Root))
if !found {
root := parsecli.GetLegacyProjectRoot(e, e.Root)
_, err := os.Lstat(filepath.Join(root, parsecli.LegacyConfigFile))
found = err == nil
}
if found {
return false, stackerr.New(
`Detected that you are already inside a Parse project.
Please refrain from creating a Parse project inside another Parse project.
`,
)
}
var (
cloudCodeDir string
err error
)
if nonInteractive {
cloudCodeDir = n.codeLocation
} else if n.configOnly {
cloudCodeDir = "" // ensures that "parse new --init" inits the current directory
} else {
cloudCodeDir, err = n.getCloudCodeDir(e, name, isNew)
if err != nil {
return false, err
}
}
e.Root = filepath.Join(e.Root, cloudCodeDir)
switch e.Type {
case parsecli.ParseFormat:
if !n.configOnly {
var decision string
if isNew {
fmt.Fprint(e.Out, `
You can either set up a blank project or create a sample Cloud Code project.
Please type "(b)lank" if you wish to setup a blank project, otherwise press ENTER: `)
} else {
fmt.Fprint(e.Out, `
You can either set up a blank project or download the current deployed Cloud Code.
Please type "(b)lank" if you wish to setup a blank project, otherwise press ENTER: `)
}
fmt.Fscanf(e.In, "%s\n", &decision)
decision = strings.ToLower(strings.TrimSpace(decision))
if decision != "" && decision == "b" || decision == "blank" {
n.configOnly = true
}
}
return parsecmd.CloneSampleCloudCode(e, isNew, n.configOnly, appConfig)
case parsecli.HerokuFormat:
if !n.configOnly {
var decision string
if isNew {
fmt.Fprint(e.Out, `
You can either set up a blank project or create a sample Node.js project.
Please type "(b)lank" if you wish to setup a blank project, otherwise press ENTER: `)
} else {
fmt.Fprint(e.Out, `
You can either set up a blank project or download the server code currently deployed to Heroku.
Please type "(b)lank" if you wish to setup a blank project, otherwise press ENTER: `)
}
fmt.Fscanf(e.In, "%s\n", &decision)
decision = strings.ToLower(strings.TrimSpace(decision))
if decision != "" && decision == "b" || decision == "blank" {
n.configOnly = true
}
}
return herokucmd.CloneNodeCode(e, isNew, n.configOnly, appConfig)
}
return false, stackerr.Newf("Unknown project type: %d", e.Type)
}
示例2: main
func main() {
// some parts of apps.go are unable to handle
// interrupts, this logic ensures we exit on system interrupts
interrupt := make(chan os.Signal, 1)
signal.Notify(interrupt, os.Interrupt)
go func() {
<-interrupt
os.Exit(1)
}()
e := parsecli.Env{
Root: os.Getenv("PARSE_ROOT"),
Server: os.Getenv("PARSE_SERVER"),
ErrorStack: os.Getenv("PARSE_ERROR_STACK") == "1",
ParserEmail: os.Getenv("PARSER_EMAIL"),
Out: os.Stdout,
Err: os.Stderr,
In: os.Stdin,
Exit: os.Exit,
Clock: clock.New(),
}
if e.Root == "" {
cur, err := os.Getwd()
if err != nil {
fmt.Fprintf(e.Err, "Failed to get current directory:\n%s\n", err)
os.Exit(1)
}
root := parsecli.GetProjectRoot(&e, cur)
if parsecli.IsProjectDir(root) {
e.Root = root
config, err := parsecli.ConfigFromDir(root)
if err != nil {
fmt.Fprintln(e.Err, err)
os.Exit(1)
}
e.Type = config.GetProjectConfig().Type
if e.ParserEmail == "" {
e.ParserEmail = config.GetProjectConfig().ParserEmail
}
} else {
e.Type = parsecli.LegacyParseFormat
e.Root = parsecli.GetLegacyProjectRoot(&e, cur)
}
}
if e.Type != parsecli.LegacyParseFormat && e.Type != parsecli.ParseFormat && e.Type != parsecli.HerokuFormat {
fmt.Fprintf(e.Err, "Unknown project type %d.\n", e.Type)
os.Exit(1)
}
if e.Server == "" {
e.Server = parsecli.DefaultBaseURL
}
apiClient, err := parsecli.NewParseAPIClient(&e)
if err != nil {
fmt.Fprintln(e.Err, err)
os.Exit(1)
}
e.ParseAPIClient = apiClient
if e.Type == parsecli.HerokuFormat {
apiClient, err := parsecli.NewHerokuAPIClient(&e)
if err != nil {
fmt.Fprintln(e.Err, err)
os.Exit(1)
}
e.HerokuAPIClient = apiClient
}
var (
rootCmd *cobra.Command
command []string
)
switch e.Type {
case parsecli.LegacyParseFormat, parsecli.ParseFormat:
command, rootCmd = parseRootCmd(&e)
case parsecli.HerokuFormat:
command, rootCmd = herokuRootCmd(&e)
}
if len(command) == 0 || command[0] != "update" {
message, err := checkIfSupported(&e, parsecli.Version, command...)
if err != nil {
fmt.Fprintln(e.Err, err)
os.Exit(1)
}
if message != "" {
fmt.Fprintln(e.Err, message)
}
}
if err := rootCmd.Execute(); err != nil {
// Error is already printed in Execute()
os.Exit(1)
}
}