Skip to content

Commit

Permalink
added option to pass desired version via command line
Browse files Browse the repository at this point in the history
  • Loading branch information
stashedUp committed Aug 28, 2018
1 parent fcb8193 commit 6e53f74
Showing 1 changed file with 59 additions and 24 deletions.
83 changes: 59 additions & 24 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"fmt"
"log"
"os"
"regexp"

"github.com/manifoldco/promptui"
"github.com/pborman/getopt"
Expand All @@ -33,35 +34,69 @@ var version = "0.1.0\n"

func main() {

versionFlag := getopt.BoolLong("version", 'v', "displays the version of tgshift")
helpFlag := getopt.BoolLong("help", 'h', "displays help message")
_ = versionFlag

getopt.Parse()
args := getopt.Args()

if len(args) == 0 {

tglist, _ := lib.GetTGList(terragruntURL)
recentVersions, _ := lib.GetRecentVersions() //get recent versions from RECENT file
tglist = append(recentVersions, tglist...) //append recent versions to the top of the list
tglist = lib.RemoveDuplicateVersions(tglist) //remove duplicate version

/* prompt user to select version of terragrunt */
prompt := promptui.Select{
Label: "Select terragrunt version",
Items: tglist,
}

_, tgversion, errPrompt := prompt.Run()
if *versionFlag {
fmt.Printf("\nVersion: %v\n", version)
} else if *helpFlag {
usageMessage()
} else {

if errPrompt != nil {
log.Printf("Prompt failed %v\n", errPrompt)
os.Exit(1)
if len(args) == 1 {

semverRegex := regexp.MustCompile(`\A\d+(\.\d+){2}\z`)
if semverRegex.MatchString(args[0]) {
requestedVersion := args[0]

//check if version exist before downloading it
tflist, _ := lib.GetTGList(terragruntURL)
exist := lib.VersionExist(requestedVersion, tflist)

if exist {
lib.AddRecent(requestedVersion) //add to recent file for faster lookup
lib.Install(requestedVersion)
} else {
fmt.Println("Not a valid terragrunt version")
}

} else {
fmt.Println("Not a valid terragrunt version")
fmt.Println("Args must be a valid terragrunt version")
usageMessage()
}

} else if len(args) == 0 {

tglist, _ := lib.GetTGList(terragruntURL)
recentVersions, _ := lib.GetRecentVersions() //get recent versions from RECENT file
tglist = append(recentVersions, tglist...) //append recent versions to the top of the list
tglist = lib.RemoveDuplicateVersions(tglist) //remove duplicate version

/* prompt user to select version of terragrunt */
prompt := promptui.Select{
Label: "Select terragrunt version",
Items: tglist,
}

_, tgversion, errPrompt := prompt.Run()

if errPrompt != nil {
log.Printf("Prompt failed %v\n", errPrompt)
os.Exit(1)
}

fmt.Printf("Terragrunt version %q selected\n", tgversion)
lib.Install(tgversion)
lib.AddRecent(tgversion) //add to recent file for faster lookup (cache)
os.Exit(0)
} else {
usageMessage()
}

fmt.Printf("Terragrunt version %q selected\n", tgversion)
lib.Install(tgversion)
lib.AddRecent(tgversion) //add to recent file for faster lookup (cache)
os.Exit(0)
} else {
usageMessage()
}

}
Expand Down

0 comments on commit 6e53f74

Please sign in to comment.