/
main.go
56 lines (48 loc) · 1.14 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package main
import (
"encoding/json"
"log"
"os"
"github.com/nightlyone/deb/repository"
)
func main() {
log.SetFlags(0)
_, e := parseFlags()
switch {
default:
log.Fatalf("FATAL: argument parsing error, %s", e)
fallthrough
case e == errFlagError:
os.Exit(2)
case e == errFlagHelp:
// help, which is displayed by the flags package already
// we are done
return
case e == nil:
}
log.Println("Lets start")
older, err := NewBase(opts.Base, opts.Old)
if err != nil {
log.Fatalf("FATAL: invalid base parameter %q, leading to %s", opts.Base, err)
}
newer, err := NewBase(opts.Base, opts.New)
if err != nil {
log.Fatalf("FATAL: invalid base parameter %q, leading to %s", opts.Base, err)
}
repo, err := repository.New()
if err != nil {
log.Fatalf("FATAL: cannot create repository %s", err)
}
repo.Archs = opts.Archs
repo.Dists = opts.Dists
repo.Sections = opts.Sections
cs, err := CalcUpdates(newer, older, repo)
if err != nil {
log.Fatalf("FATAL: cannot calculate updates: %s", err)
}
enc := json.NewEncoder(os.Stdout)
err = enc.Encode(cs)
if err != nil {
log.Fatalf("FATAL: cannot write result: %s", err)
}
}