func create(flags cli.Flags) (err error) { targetDir, err := filepath.Abs(flags.String("dir")) if err != nil { panic(err) } if !isValidInstallDir(targetDir) { printer.Dangerf("\nPlease make sure you are targeting a directory inside $GOPATH, type iris -h for help.") return } if !utils.DirectoryExists(packagesInstallDir) || !flags.Bool("offline") { downloadPackages() } createPackage(flags.String("type"), targetDir) return }
func create(flags cli.Flags) (err error) { if !utils.DirectoryExists(packagesInstallDir) || !flags.Bool("offline") { downloadPackages() } targetDir := flags.String("dir") // remove first and last / if any if strings.HasPrefix(targetDir, "./") || strings.HasPrefix(targetDir, "."+utils.PathSeparator) { targetDir = targetDir[2:] } if targetDir[len(targetDir)-1] == '/' { targetDir = targetDir[0 : len(targetDir)-1] } // createPackage(flags.String("type"), targetDir) return }
func create(flags cli.Flags) (err error) { targetDir, err := filepath.Abs(flags.String("dir")) if err != nil { panic(err) } if !isValidInstallDir(targetDir) { printer.Dangerf("\nPlease make sure you are targeting a directory inside $GOPATH, type iris -h for help.") return } if !utils.DirectoryExists(packagesInstallDir) || !flags.Bool("offline") { // install/update go dependencies at the same time downloading the zip from the github iris-contrib assets finish := make(chan bool) go func() { go func() { for _, source := range packagesDependencies { gogetCmd := utils.CommandBuilder("go", "get", source) if msg, err := gogetCmd.CombinedOutput(); err != nil { panic("Unable to go get " + source + " please make sure you're connected to the internet.\nSolution: Remove your $GOPATH/src/github.com/iris-contrib/middleware folder and re-run the iris create\nReason:\n" + string(msg)) } } finish <- true }() downloadPackages() <-finish }() <-finish close(finish) } createPackage(flags.String("type"), targetDir) return }