fcd49f2272c18c477108a8a5f9a5e5e1219f43ac
[bloat] / migrations / csrfToken / main.go
1 package main
2
3 import (
4         "log"
5         "math/rand"
6         "os"
7         "path/filepath"
8         "time"
9
10         "bloat/config"
11         "bloat/kv"
12         "bloat/repository"
13         "bloat/util"
14 )
15
16 var (
17         configFile = "bloat.conf"
18 )
19
20 func init() {
21         rand.Seed(time.Now().Unix())
22 }
23
24 func getKeys(sessionRepoPath string) (keys []string, err error) {
25         f, err := os.Open(sessionRepoPath)
26         if err != nil {
27                 return
28         }
29         return f.Readdirnames(0)
30 }
31
32 func main() {
33         opts, _, err := util.Getopts(os.Args, "f:")
34         if err != nil {
35                 log.Fatal(err)
36         }
37
38         for _, opt := range opts {
39                 switch opt.Option {
40                 case 'f':
41                         configFile = opt.Value
42                 }
43         }
44
45         config, err := config.ParseFile(configFile)
46         if err != nil {
47                 log.Fatal(err)
48         }
49
50         if !config.IsValid() {
51                 log.Fatal("invalid config")
52         }
53
54         sessionRepoPath := filepath.Join(config.DatabasePath, "session")
55         sessionDB, err := kv.NewDatabse(sessionRepoPath)
56         if err != nil {
57                 log.Fatal(err)
58         }
59
60         sessionRepo := repository.NewSessionRepository(sessionDB)
61
62         sessionIds, err := getKeys(sessionRepoPath)
63         if err != nil {
64                 log.Fatal(err)
65         }
66
67         for _, id := range sessionIds {
68                 s, err := sessionRepo.Get(id)
69                 if err != nil {
70                         log.Fatal(err)
71                 }
72                 s.CSRFToken = util.NewCSRFToken()
73                 err = sessionRepo.Add(s)
74                 if err != nil {
75                         log.Fatal(err)
76                 }
77         }
78
79 }