Browse Source

inseriti i parametri di comando

Mauro 4 months ago
parent
commit
fcc66726ad
2 changed files with 67 additions and 32 deletions
  1. BIN
      PasswordWeb
  2. 67 32
      password.go

BIN
PasswordWeb


+ 67 - 32
password.go

@@ -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)
+  } 
 }