appinstaller.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package main
  2. import (
  3. "context"
  4. "errors"
  5. "flag"
  6. "fmt"
  7. "os"
  8. //"os/exec"
  9. "time"
  10. "log"
  11. "github.com/zyxar/argo/rpc"
  12. "database/sql"
  13. _"github.com/mattn/go-sqlite3"
  14. )
  15. var (
  16. rpcc rpc.Client
  17. rpcSecret string
  18. rpcURI string
  19. launchLocal bool
  20. errParameter = errors.New("invalid parameter")
  21. errNotSupportedCmd = errors.New("not supported command")
  22. errInvalidCmd = errors.New("invalid command")
  23. )
  24. func init() {
  25. flag.StringVar(&rpcSecret, "secret", "", "set --rpc-secret for aria2c")
  26. flag.StringVar(&rpcURI, "uri", "ws://localhost:6800/jsonrpc", "set rpc address")
  27. flag.BoolVar(&launchLocal, "launch", false, "launch local aria2c daemon")
  28. }
  29. func InitSql() {
  30. db, err := sql.Open("sqlite3", "foo.db")
  31. if err != nil {
  32. log.Fatal(err)
  33. }
  34. defer db.Close()
  35. sqlStmt := `
  36. CREATE TABLE IF NOT EXISTS tasks (
  37. id integer PRIMARY KEY,
  38. gid text NOT NULL,
  39. title text NOT NULL,
  40. file text NOT NULL,
  41. type text NOT NULL,
  42. status text,
  43. totalLength text,
  44. completedLength text,
  45. fav text
  46. );
  47. `
  48. _, err = db.Exec(sqlStmt)
  49. if err != nil {
  50. log.Printf("%q: %s\n", err, sqlStmt)
  51. return
  52. }
  53. sqlStmt = `
  54. CREATE TABLE IF NOT EXISTS warehouse (
  55. id integer PRIMARY KEY,
  56. title text NOT NULL,
  57. file text NOT NULL,
  58. type text NOT NULL
  59. );
  60. `
  61. _,err = db.Exec(sqlStmt)
  62. if err != nil {
  63. log.Printf("%q: %s\n",err,sqlStmt)
  64. return
  65. }
  66. }
  67. func main() {
  68. flag.Parse()
  69. if flag.NArg() == 0 {
  70. fmt.Fprintf(os.Stderr, "usage: app start\n")
  71. flag.PrintDefaults()
  72. fmt.Fprintln(os.Stderr)
  73. }
  74. InitSql()
  75. var err error
  76. rpcc, err = rpc.New(context.Background(), rpcURI, rpcSecret, time.Second, AppNotifier{})
  77. if err != nil {
  78. fmt.Fprintln(os.Stderr, err)
  79. os.Exit(2)
  80. }
  81. defer rpcc.Close()
  82. for {
  83. }
  84. }