refactor(gatewayserver)
Brian Tiger Chow committed
Jan 28, 2015 at 03:07 UTC
908e4498a889ca6f6b35d0c2b772589c8653c09c
1 file changed
+32
-21
cmd/ipfs-gateway-fs/main.go
+32
-21
@@ -66,38 +66,49 @@ func run() error {
66
defer node.Close()
67
68
if *performGC {
69
- go func() {
70
- for _ = range time.Tick(*garbageCollectInterval) {
71
- if err := corerepo.GarbageCollect(node, ctx); err != nil {
72
- log.Println("failed to run garbage collection", err)
73
- }
74
- }
75
- }()
69
+ if err := runGarbageCollectorWorker(ctx, node); err != nil {
70
+ return err
71
+ }
72
}
73
74
if *assetsPath != "" {
79
- fi, err := os.Stat(*assetsPath)
80
- if err != nil {
75
+ if err := runFileServerWorker(ctx, node); err != nil {
76
return err
77
}
83
- if !fi.IsDir() {
84
- return errors.New("asset path must be a directory")
85
- }
86
- go func() {
87
- for _ = range time.Tick(*refreshAssetsInterval) {
88
- _, err := coreunix.AddR(node, *assetsPath)
89
- if err != nil {
90
- log.Println(err)
91
- }
92
- }
93
- }()
78
}
79
80
opts := []corehttp.ServeOption{
81
corehttp.GatewayOption(*writable),
82
}
99
- if err := corehttp.ListenAndServe(node, *host, opts...); err != nil {
83
+ return corehttp.ListenAndServe(node, *host, opts...)
84
+}
85
+
86
+func runGarbageCollectorWorker(ctx context.Context, node *core.IpfsNode) error {
87
+ go func() {
88
+ for _ = range time.Tick(*garbageCollectInterval) {
89
+ if err := corerepo.GarbageCollect(node, ctx); err != nil {
90
+ log.Println("failed to run garbage collection", err)
91
+ }
92
+ }
93
+ }()
94
+ return nil
95
+}
96
+
97
+func runFileServerWorker(ctx context.Context, node *core.IpfsNode) error {
98
+ fi, err := os.Stat(*assetsPath)
99
+ if err != nil {
100
return err
101
}
102
+ if !fi.IsDir() {
103
+ return errors.New("asset path must be a directory")
104
+ }
105
+ go func() {
106
+ for _ = range time.Tick(*refreshAssetsInterval) {
107
+ _, err := coreunix.AddR(node, *assetsPath)
108
+ if err != nil {
109
+ log.Println(err)
110
+ }
111
+ }
112
+ }()
113
return nil
114
}