qrcp.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package cmd
  2. import (
  3. "github.com/spf13/cobra"
  4. )
  5. func init() {
  6. rootCmd.AddCommand(sendCmd)
  7. rootCmd.AddCommand(receiveCmd)
  8. rootCmd.AddCommand(configCmd)
  9. rootCmd.AddCommand(versionCmd)
  10. // Global command flags
  11. rootCmd.PersistentFlags().BoolVarP(&quietFlag, "quiet", "q", false, "only print errors")
  12. rootCmd.PersistentFlags().BoolVarP(&keepaliveFlag, "keep-alive", "k", false, "keep server alive after transferring")
  13. rootCmd.PersistentFlags().BoolVarP(&listallinterfacesFlag, "list-all-interfaces", "l", false, "list all available interfaces when choosing the one to use")
  14. rootCmd.PersistentFlags().IntVarP(&portFlag, "port", "p", 0, "port to use for the server")
  15. rootCmd.PersistentFlags().StringVar(&pathFlag, "path", "", "path to use. Defaults to a random string")
  16. rootCmd.PersistentFlags().StringVarP(&interfaceFlag, "interface", "i", "", "network interface to use for the server")
  17. rootCmd.PersistentFlags().StringVarP(&fqdnFlag, "fqdn", "d", "", "fully-qualified domain name to use for the resulting URLs")
  18. rootCmd.PersistentFlags().BoolVarP(&zipFlag, "zip", "z", false, "zip content before transferring")
  19. // Receive command flags
  20. receiveCmd.PersistentFlags().StringVarP(&outputFlag, "output", "o", "", "output directory for receiving files")
  21. }
  22. // Flags
  23. var zipFlag bool
  24. var portFlag int
  25. var interfaceFlag string
  26. var outputFlag string
  27. var keepaliveFlag bool
  28. var quietFlag bool
  29. var fqdnFlag string
  30. var pathFlag string
  31. var listallinterfacesFlag bool
  32. // The root command (`qrcp`) is like a shortcut of the `send` command
  33. var rootCmd = &cobra.Command{
  34. Use: "qrcp",
  35. Args: cobra.MinimumNArgs(1),
  36. RunE: sendCmdFunc,
  37. SilenceErrors: true,
  38. SilenceUsage: true,
  39. }
  40. // Execute the root command
  41. func Execute() error {
  42. if err := rootCmd.Execute(); err != nil {
  43. rootCmd.PrintErrf("Error: %v\nRun `qrcp help` for help.\n", err)
  44. return err
  45. }
  46. return nil
  47. }