package main import ( "fmt" "runtime" "github.com/bugsnag/bugsnag-go" "github.com/fatih/color" "gopkg.in/AlecAivazis/survey.v1" ) var qs = []*survey.Question{ { Name: "location", Prompt: &survey.Input{ Message: "Where do you want to install Wiki.js?", Default: "./wiki", }, Validate: survey.Required, }, { Name: "dbtype", Prompt: &survey.Select{ Message: "Select a DB Driver:", Options: []string{"MariabDB", "MS SQL Server", "MySQL", "PostgreSQL", "SQLite"}, Default: "PostgreSQL", }, }, { Name: "port", Prompt: &survey.Input{ Message: "Server Port:", Default: "3000", }, }, } func main() { bugsnag.Configure(bugsnag.Configuration{ APIKey: "37770b3b08864599fd47c4edba5aa656", ReleaseStage: "dev", }) bold := color.New(color.FgWhite).Add(color.Bold) logo := ` __ __ _ _ _ _ / / /\ \ (_) | _(_) (_)___ \ \/ \/ / | |/ / | | / __| \ /\ /| | <| |_ | \__ \ \/ \/ |_|_|\_\_(_)/ |___/ |__/ ` color.Yellow(logo) bold.Println("\nInstaller for Wiki.js 2.x") fmt.Printf("%s-%s\n\n", runtime.GOOS, runtime.GOARCH) // Check system requirements bold.Println("Verifying system requirements...") CheckNodeJs() CheckRAM() fmt.Println() // the answers will be written to this struct answers := struct { Location string DBType string `survey:"dbtype"` Port int }{} // perform the questions err := survey.Ask(qs, &answers) if err != nil { fmt.Println(err.Error()) return } fmt.Printf("%s chose %d.", answers.Location, answers.Port) // Download archives... bold.Println("\nDownloading packages...") // uiprogress.Start() // bar := uiprogress.AddBar(100) // bar.AppendCompleted() // bar.PrependElapsed() // for bar.Incr() { // time.Sleep(time.Millisecond * 20) // } finish := ` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | | | Open http://localhost:3000/ in your browser | | to complete the installation! | | | <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ` color.Yellow("\n\n" + finish) fmt.Println("Press any key to continue.") fmt.Scanln() }