|
1 | 1 | package formatter |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "sort" |
5 | | - "sync" |
| 4 | + "sort" |
| 5 | + "sync" |
6 | 6 |
|
7 | | - "github.com/docker/app/internal/formatter/driver" |
8 | | - composetypes "github.com/docker/cli/cli/compose/types" |
9 | | - "github.com/pkg/errors" |
| 7 | + "github.com/docker/app/internal/formatter/driver" |
| 8 | + composetypes "github.com/docker/cli/cli/compose/types" |
| 9 | + "github.com/pkg/errors" |
10 | 10 | ) |
11 | 11 |
|
12 | 12 | var ( |
13 | | - driversMu sync.RWMutex |
14 | | - drivers = map[string]driver.Driver{} |
| 13 | + driversMu sync.RWMutex |
| 14 | + drivers = map[string]driver.Driver{} |
15 | 15 | ) |
16 | 16 |
|
17 | 17 | // Register makes a formatter available by the provided name. |
18 | 18 | // If Register is called twice with the same name or if driver is nil, |
19 | 19 | // it panics. |
20 | 20 | func Register(name string, driver driver.Driver) { |
21 | | - driversMu.Lock() |
22 | | - defer driversMu.Unlock() |
23 | | - if driver == nil { |
24 | | - panic("formatter: Register driver is nil") |
25 | | - } |
26 | | - if _, dup := drivers[name]; dup { |
27 | | - panic("formatter: Register called twice for driver " + name) |
28 | | - } |
29 | | - drivers[name] = driver |
| 21 | + driversMu.Lock() |
| 22 | + defer driversMu.Unlock() |
| 23 | + if driver == nil { |
| 24 | + panic("formatter: Register driver is nil") |
| 25 | + } |
| 26 | + if _, dup := drivers[name]; dup { |
| 27 | + panic("formatter: Register called twice for driver " + name) |
| 28 | + } |
| 29 | + drivers[name] = driver |
30 | 30 | } |
31 | 31 |
|
32 | 32 | // Format uses the specified formatter to create a printable output. |
33 | 33 | // If the formatter is not registered, this errors out. |
34 | 34 | func Format(config *composetypes.Config, formatter string) (string, error) { |
35 | | - driversMu.RLock() |
36 | | - d, present := drivers[formatter] |
37 | | - driversMu.RUnlock() |
38 | | - if !present { |
39 | | - return "", errors.Errorf("unknown formatter %s", formatter) |
40 | | - } |
41 | | - s, err := d.Format(config) |
42 | | - if err != nil { |
43 | | - return "", err |
44 | | - } |
45 | | - return s, nil |
| 35 | + driversMu.RLock() |
| 36 | + d, present := drivers[formatter] |
| 37 | + driversMu.RUnlock() |
| 38 | + if !present { |
| 39 | + return "", errors.Errorf("unknown presenter %q", formatter) |
| 40 | + } |
| 41 | + s, err := d.Format(config) |
| 42 | + if err != nil { |
| 43 | + return "", err |
| 44 | + } |
| 45 | + return s, nil |
46 | 46 | } |
47 | 47 |
|
48 | 48 | // Drivers returns a sorted list of the names of the registered drivers. |
49 | 49 | func Drivers() []string { |
50 | | - list := []string{} |
51 | | - driversMu.RLock() |
52 | | - for name := range drivers { |
53 | | - list = append(list, name) |
54 | | - } |
55 | | - driversMu.RUnlock() |
56 | | - sort.Strings(list) |
57 | | - return list |
| 50 | + list := []string{} |
| 51 | + driversMu.RLock() |
| 52 | + for name := range drivers { |
| 53 | + list = append(list, name) |
| 54 | + } |
| 55 | + driversMu.RUnlock() |
| 56 | + sort.Strings(list) |
| 57 | + return list |
58 | 58 | } |
0 commit comments