/* accetta un parametro da riga di comando esegue la generazione fornendo un numero,un simbolo, una parola, un simbolo, un numero */ package main import ( "fmt" "os" "966.it/PasswordGenerator" "github.com/gin-gonic/gin" "net/http" "flag" ) func main() { // se true, visualizza alcuni messaggi in Generator var nFlag = flag.Int("n",6,"Numeri per il pin") var gFlag = flag.Bool("g",false,"Genera un pin sulla console") var sFlag = flag.Bool("s",false,"Genera una password") var fFlag = flag.String("f","","posizione directory/file da leggere") var bFlag = flag.Bool("b",false,"esegue il servizio http") var pFlag = flag.String("p","localhost:8080","Porta per il servizio http") var dbFlag = flag.Bool("db",false,"abilita la stampa messaggi") flag.Parse() var check bool = false if *dbFlag { fmt.Printf("Numero di elementi per il pin : %d\n",*nFlag) fmt.Printf("Genera solo un pin numerico : %B\n",*gFlag) fmt.Printf("Genera una password alfanum. : %B\n",*sFlag) fmt.Printf("esecuzione demone HTTP : %B\n",*bFlag) fmt.Printf("Porta di default demone HTTP : %s\n",*pFlag) fmt.Printf("Directory/file da leggere : %s\n",*fFlag) fmt.Printf("Debug : %B\n\n",*dbFlag) fmt.Printf("Primo giro di verifiche\n") if *nFlag < 1 || *nFlag > 10 { fmt.Printf("Errore: lunghezza pin numerico fuori dal range 1-10\n") check = true } if (*fFlag == "") && !(*gFlag && *sFlag) { fmt.Printf("Errore: non sono stati indicati i parametri dove trovare i file\n") check = true } } if check { fmt.Printf("Verificare i parametri, c'e' qualcosa di errato\n") os.Exit(1) } if *gFlag { fmt.Printf("%s\n",mod.RunNumber(*nFlag,*dbFlag)) } if *sFlag && *fFlag != "" { fmt.Printf("%s\n",mod.Run(*fFlag,*dbFlag)) } if *bFlag { r := gin.Default() r.LoadHTMLGlob("templates/*") r.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK,"index.tmpl",gin.H{ "Password1":mod.Run(*fFlag,*dbFlag), "Password2":mod.Run(*fFlag,*dbFlag), "Password3":mod.Run(*fFlag,*dbFlag), "Password4":mod.RunNumber(*nFlag,*dbFlag), "Password5":mod.RunNumber(*nFlag+3,*dbFlag), }) }) r.GET("/json", func(c *gin.Context) { c.JSON(http.StatusOK,gin.H{ "Password1":mod.Run(*fFlag,*dbFlag), "Password2":mod.Run(*fFlag,*dbFlag), "Password3":mod.Run(*fFlag,*dbFlag), "Password4":mod.RunNumber(*nFlag,*dbFlag), "Password5":mod.RunNumber(*nFlag+3,*dbFlag), }) }) r.Run(*pFlag) } }