add gateway (part)
[arvados.git] / services / boot / arvados_packages.go
1 package main
2
3 import (
4         "context"
5         "io/ioutil"
6         "os"
7 )
8
9 var arvadosRepo = &arvadosRepoBooter{}
10
11 type arvadosRepoBooter struct {}
12
13 func (*arvadosRepoBooter) Boot(ctx context.Context) error {
14         osPackageMutex.Lock()
15         defer osPackageMutex.Unlock()
16
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 }