|
|
@@ -11,47 +11,82 @@ import (
|
|
|
"966.it/PasswordGenerator"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"net/http"
|
|
|
+ "flag"
|
|
|
)
|
|
|
|
|
|
func main() {
|
|
|
// se true, visualizza alcuni messaggi in Generator
|
|
|
- var verbose bool = false
|
|
|
|
|
|
- numerodiparametri := len(os.Args)
|
|
|
-
|
|
|
- if numerodiparametri != 3 {
|
|
|
- fmt.Printf("Numero di parametri errati\n")
|
|
|
- fmt.Printf("%s %s %s \n",os.Args[0],"Cartella_Termini","Porta")
|
|
|
- os.Exit(99)
|
|
|
+ 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
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- elementidaleggere := os.Args[1]
|
|
|
- portadiascolto := fmt.Sprintf(":%s",os.Args[2])
|
|
|
-
|
|
|
- fmt.Printf("elementi leggere: %s\n",elementidaleggere)
|
|
|
- fmt.Printf("Porta in ascolto: %s\n",portadiascolto)
|
|
|
-
|
|
|
- r := gin.Default()
|
|
|
- r.LoadHTMLGlob("templates/*")
|
|
|
- r.GET("/", func(c *gin.Context) {
|
|
|
- c.HTML(http.StatusOK,"index.tmpl",gin.H{
|
|
|
- "Password1":mod.Run(elementidaleggere,verbose),
|
|
|
- "Password2":mod.Run(elementidaleggere,verbose),
|
|
|
- "Password3":mod.RunNumber(7,verbose),
|
|
|
- "Password4":mod.RunNumber(10,verbose),
|
|
|
+
|
|
|
+ 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(elementidaleggere,verbose),
|
|
|
- "Password2":mod.Run(elementidaleggere,verbose),
|
|
|
- "Password3":mod.RunNumber(7,verbose),
|
|
|
- "Password4":mod.RunNumber(10,verbose),
|
|
|
+
|
|
|
+ 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(portadiascolto)
|
|
|
|
|
|
+ r.Run(*pFlag)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|