mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-10-06 06:48:12 +03:00
cli: allow initialising project in current directory
This commit is contained in:
parent
38529b3960
commit
3053af1055
@ -90,50 +90,47 @@ type InitOptions struct {
|
||||
}
|
||||
|
||||
func (o *InitOptions) Run() error {
|
||||
var dir string
|
||||
// prompt for init directory if it's not set already
|
||||
if o.InitDir == "" {
|
||||
p := promptui.Prompt{
|
||||
Label: "Name of project directory ",
|
||||
Default: defaultDirectory,
|
||||
}
|
||||
r, err := p.Run()
|
||||
if err != nil {
|
||||
return handlePromptError(err)
|
||||
}
|
||||
if strings.TrimSpace(r) != "" {
|
||||
dir = r
|
||||
} else {
|
||||
dir = defaultDirectory
|
||||
}
|
||||
} else {
|
||||
dir = o.InitDir
|
||||
}
|
||||
|
||||
if o.EC.ExecutionDirectory == "" {
|
||||
o.EC.ExecutionDirectory = dir
|
||||
} else {
|
||||
o.EC.ExecutionDirectory = filepath.Join(o.EC.ExecutionDirectory, dir)
|
||||
}
|
||||
|
||||
var infoMsg string
|
||||
|
||||
// create the execution directory
|
||||
if _, err := os.Stat(o.EC.ExecutionDirectory); err == nil {
|
||||
return errors.Errorf("directory '%s' already exist", o.EC.ExecutionDirectory)
|
||||
}
|
||||
err := os.MkdirAll(o.EC.ExecutionDirectory, os.ModePerm)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "error creating setup directories")
|
||||
}
|
||||
infoMsg = fmt.Sprintf(`directory created. execute the following commands to continue:
|
||||
if o.InitDir == "." {
|
||||
dir, err := os.Getwd()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "error getting present working directory")
|
||||
}
|
||||
o.EC.ExecutionDirectory = dir
|
||||
infoMsg = fmt.Sprintf(`hasura project initialised. execute the following command to continue:
|
||||
hasura console
|
||||
`)
|
||||
} else {
|
||||
// prompt for init directory if it's not set already
|
||||
if o.InitDir == "" {
|
||||
p := promptui.Prompt{
|
||||
Label: "Name of project directory ",
|
||||
Default: defaultDirectory,
|
||||
}
|
||||
r, err := p.Run()
|
||||
if err != nil {
|
||||
return handlePromptError(err)
|
||||
}
|
||||
if strings.TrimSpace(r) != "" {
|
||||
o.InitDir = r
|
||||
} else {
|
||||
o.InitDir = defaultDirectory
|
||||
}
|
||||
}
|
||||
// create execution directory
|
||||
err := o.createExecutionDirectory()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
infoMsg = fmt.Sprintf(`directory created. execute the following commands to continue:
|
||||
|
||||
cd %s
|
||||
hasura console
|
||||
`, o.EC.ExecutionDirectory)
|
||||
}
|
||||
|
||||
// create template files
|
||||
err = o.createTemplateFiles()
|
||||
err := o.createTemplateFiles()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -148,6 +145,26 @@ func (o *InitOptions) Run() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
//create the execution directory
|
||||
func (o *InitOptions) createExecutionDirectory() error {
|
||||
if o.EC.ExecutionDirectory == "" {
|
||||
o.EC.ExecutionDirectory = o.InitDir
|
||||
} else {
|
||||
o.EC.ExecutionDirectory = filepath.Join(o.EC.ExecutionDirectory, o.InitDir)
|
||||
}
|
||||
|
||||
// create the execution directory
|
||||
if _, err := os.Stat(o.EC.ExecutionDirectory); err == nil {
|
||||
return errors.Errorf("directory '%s' already exist", o.EC.ExecutionDirectory)
|
||||
}
|
||||
err := os.MkdirAll(o.EC.ExecutionDirectory, os.ModePerm)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "error creating setup directories")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// createFiles creates files required by the CLI in the ExecutionDirectory
|
||||
func (o *InitOptions) createFiles() error {
|
||||
// create the directory
|
||||
|
Loading…
Reference in New Issue
Block a user