tidy runit
[arvados.git] / services / boot / arvados_packages.go
1 package main
2
3 import (
4         "context"
5         "io/ioutil"
6         "os"
7         "sync"
8 )
9
10 var arvadosRepo = &arvadosRepoBooter{}
11
12 type arvadosRepoBooter struct {
13         sync.Mutex
14 }
15
16 func (*arvadosRepoBooter) Boot(ctx context.Context) error {
17         cfg := cfg(ctx)
18         repo := cfg.ArvadosAptRepo
19         if !repo.Enabled {
20                 return nil
21         }
22         srcPath := "/etc/apt/sources.list.d/arvados.list"
23         if _, err := os.Stat(srcPath); err == nil {
24                 return nil
25         }
26         if err := command("apt-key", "adv", "--keyserver", "pool.sks-keyservers.net", "--recv", "1078ECD7").Run(); err != nil {
27                 return err
28         }
29         if err := ioutil.WriteFile(srcPath, []byte("deb "+repo.URL+" "+repo.Release+" main\n"), 0644); err != nil {
30                 return err
31         }
32         return command("apt-get", "update").Run()
33 }