A container registry that uses the AT Protocol for manifest storage and S3 for blob storage.
atcr.io
docker
container
atproto
go
1package main
2
3import "strings"
4
5// Naming derives all infrastructure names and paths from a single ClientName.
6type Naming struct {
7 ClientName string // e.g. "seamark"
8}
9
10// DisplayName returns the title-cased client name (e.g. "Seamark").
11func (n Naming) DisplayName() string {
12 if n.ClientName == "" {
13 return ""
14 }
15 return strings.ToUpper(n.ClientName[:1]) + n.ClientName[1:]
16}
17
18// SystemUser returns the unix user name.
19func (n Naming) SystemUser() string { return n.ClientName }
20
21// InstallDir returns the source/build directory (e.g. "/opt/seamark").
22func (n Naming) InstallDir() string { return "/opt/" + n.ClientName }
23
24// ConfigDir returns the config directory (e.g. "/etc/seamark").
25func (n Naming) ConfigDir() string { return "/etc/" + n.ClientName }
26
27// BasePath returns the data directory (e.g. "/var/lib/seamark").
28func (n Naming) BasePath() string { return "/var/lib/" + n.ClientName }
29
30// LogFile returns the setup log path (e.g. "/var/log/seamark-setup.log").
31func (n Naming) LogFile() string { return "/var/log/" + n.ClientName + "-setup.log" }
32
33// Appview returns the appview binary/service/server name (e.g. "seamark-appview").
34func (n Naming) Appview() string { return n.ClientName + "-appview" }
35
36// Hold returns the hold binary/service/server name (e.g. "seamark-hold").
37func (n Naming) Hold() string { return n.ClientName + "-hold" }
38
39// AppviewConfigPath returns the appview config file path.
40func (n Naming) AppviewConfigPath() string { return n.ConfigDir() + "/appview.yaml" }
41
42// HoldConfigPath returns the hold config file path.
43func (n Naming) HoldConfigPath() string { return n.ConfigDir() + "/hold.yaml" }
44
45// NetworkName returns the private network name (e.g. "seamark-private").
46func (n Naming) NetworkName() string { return n.ClientName + "-private" }
47
48// LBName returns the load balancer name (e.g. "seamark-lb").
49func (n Naming) LBName() string { return n.ClientName + "-lb" }
50
51// Scanner returns the scanner binary/service name (e.g. "seamark-scanner").
52func (n Naming) Scanner() string { return n.ClientName + "-scanner" }
53
54// ScannerConfigPath returns the scanner config file path.
55func (n Naming) ScannerConfigPath() string { return n.ConfigDir() + "/scanner.yaml" }
56
57// ScannerDataDir returns the scanner data directory (e.g. "/var/lib/seamark/scanner").
58func (n Naming) ScannerDataDir() string { return n.BasePath() + "/scanner" }
59
60// S3Name returns the name used for S3 storage, user, and bucket.
61func (n Naming) S3Name() string { return n.ClientName }