password.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. accetta un parametro da riga di comando
  3. esegue la generazione fornendo un numero,un simbolo, una parola, un simbolo, un numero
  4. */
  5. package main
  6. import (
  7. "fmt"
  8. "os"
  9. "966.it/PasswordGenerator"
  10. "github.com/gin-gonic/gin"
  11. "net/http"
  12. "flag"
  13. )
  14. func main() {
  15. // se true, visualizza alcuni messaggi in Generator
  16. var nFlag = flag.Int("n",6,"Numeri per il pin")
  17. var gFlag = flag.Bool("g",false,"Genera un pin sulla console")
  18. var sFlag = flag.Bool("s",false,"Genera una password")
  19. var fFlag = flag.String("f","","posizione directory/file da leggere")
  20. var bFlag = flag.Bool("b",false,"esegue il servizio http")
  21. var pFlag = flag.String("p","localhost:8080","Porta per il servizio http")
  22. var dbFlag = flag.Bool("db",false,"abilita la stampa messaggi")
  23. flag.Parse()
  24. var check bool = false
  25. if *dbFlag {
  26. fmt.Printf("Numero di elementi per il pin : %d\n",*nFlag)
  27. fmt.Printf("Genera solo un pin numerico : %B\n",*gFlag)
  28. fmt.Printf("Genera una password alfanum. : %B\n",*sFlag)
  29. fmt.Printf("esecuzione demone HTTP : %B\n",*bFlag)
  30. fmt.Printf("Porta di default demone HTTP : %s\n",*pFlag)
  31. fmt.Printf("Directory/file da leggere : %s\n",*fFlag)
  32. fmt.Printf("Debug : %B\n\n",*dbFlag)
  33. fmt.Printf("Primo giro di verifiche\n")
  34. if *nFlag < 1 || *nFlag > 10 {
  35. fmt.Printf("Errore: lunghezza pin numerico fuori dal range 1-10\n")
  36. check = true
  37. }
  38. if (*fFlag == "") && !(*gFlag && *sFlag) {
  39. fmt.Printf("Errore: non sono stati indicati i parametri dove trovare i file\n")
  40. check = true
  41. }
  42. }
  43. if check {
  44. fmt.Printf("Verificare i parametri, c'e' qualcosa di errato\n")
  45. os.Exit(1)
  46. }
  47. if *gFlag {
  48. fmt.Printf("%s\n",mod.RunNumber(*nFlag,*dbFlag))
  49. }
  50. if *sFlag && *fFlag != "" {
  51. fmt.Printf("%s\n",mod.Run(*fFlag,*dbFlag))
  52. }
  53. if *bFlag {
  54. r := gin.Default()
  55. r.LoadHTMLGlob("templates/*")
  56. r.GET("/", func(c *gin.Context) {
  57. c.HTML(http.StatusOK,"index.tmpl",gin.H{
  58. "Password1":mod.Run(*fFlag,*dbFlag),
  59. "Password2":mod.Run(*fFlag,*dbFlag),
  60. "Password3":mod.Run(*fFlag,*dbFlag),
  61. "Password4":mod.RunNumber(*nFlag,*dbFlag),
  62. "Password5":mod.RunNumber(*nFlag+3,*dbFlag),
  63. })
  64. })
  65. r.GET("/json", func(c *gin.Context) {
  66. c.JSON(http.StatusOK,gin.H{
  67. "Password1":mod.Run(*fFlag,*dbFlag),
  68. "Password2":mod.Run(*fFlag,*dbFlag),
  69. "Password3":mod.Run(*fFlag,*dbFlag),
  70. "Password4":mod.RunNumber(*nFlag,*dbFlag),
  71. "Password5":mod.RunNumber(*nFlag+3,*dbFlag),
  72. })
  73. })
  74. r.Run(*pFlag)
  75. }
  76. }