A container registry that uses the AT Protocol for manifest storage and S3 for blob storage. atcr.io
docker container atproto go
at main 61 lines 2.5 kB view raw
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 }