diff options
| author | Jeff Carr <[email protected]> | 2024-12-13 12:34:31 -0600 | 
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-12-13 12:34:31 -0600 | 
| commit | 5f1f19d9ca4bec7b285256845d04ac76222cda13 (patch) | |
| tree | b30e9d6234719584af29b12950352dc41193de5d | |
| parent | e69a078b75c75429ce70bf7da0e00a532772d25b (diff) | |
| -rw-r--r-- | main.go | 18 | ||||
| -rw-r--r-- | stdin.go | 57 | 
2 files changed, 71 insertions, 4 deletions
@@ -125,10 +125,20 @@ func clone() {  			badExit(err)  		} -		// update go.sum and go.mod -		// todo: only do this if they don't exist? -		// todo: make these git commit metadata -		pb.RedoGoMod() +		if err := pb.ValidGoSum(); err != nil { +			// update go.sum and go.mod +			if err := pb.RunStrict([]string{"go-mod-clean"}); err != nil { +				log.Info("") +				log.Info("Do you have go-mod-clean? Otherwise:") +				log.Info("  go install go.wit.com/apps/go-mod-clean@latest") +				log.Info("") +				badExit(err) +			} +		} +		if err := pb.ValidGoSum(); err != nil { +			log.Info("could not generate valid go.sum file") +			badExit(err) +		}  		// double check it actually downloaded  		fullgitdir := filepath.Join(forge.GetGoSrc(), argv.Repo, ".git") diff --git a/stdin.go b/stdin.go new file mode 100644 index 0000000..370bc27 --- /dev/null +++ b/stdin.go @@ -0,0 +1,57 @@ +package main + +import ( +	"bufio" +	"errors" +	"fmt" +	"os" +	"strings" + +	"go.wit.com/log" +) + +func showOptions(b bool, s []string) { +	fmt.Println("") +	for _, line := range s { +		fmt.Println(line) +	} +	fmt.Println("") +	if b { +		fmt.Println("Enter (Y/n)") +	} else { +		fmt.Println("Enter (y/N)") +	} +} + +// if b == true, default is to continue with 'Y' +func simpleStdin(b bool, s []string) { +	/* +		if argv.Auto { +			return +		} +	*/ +	err := errors.New("user cancelled via stdin") +	showOptions(b, s) +	scanner := bufio.NewScanner(os.Stdin) +	for scanner.Scan() { +		s := scanner.Text() +		s = strings.TrimSpace(s) +		s = strings.ToLower(s) +		switch s { +		case "y": +			log.Info("got y") +			return +		case "n": +			log.Info("got n") +			badExit(err) +		case "": +			if b { +				return +			} else { +				badExit(err) +			} +		default: +			badExit(err) +		} +	} +}  | 
