refactor: added more comments to functions
many more are required but in too tired to do more
This commit is contained in:
parent
38d8b51bd5
commit
fa16ce20eb
@ -12,16 +12,23 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Type aliases to make code hints easier to understand
|
// Type aliases to make code hints easier to understand
|
||||||
|
|
||||||
|
// AppEnv is a map of the values in an apps env config
|
||||||
type AppEnv = map[string]string
|
type AppEnv = map[string]string
|
||||||
|
|
||||||
|
// AppName is AppName
|
||||||
type AppName = string
|
type AppName = string
|
||||||
|
|
||||||
|
// AppFile represents app env files on disk without reading the contents
|
||||||
type AppFile struct {
|
type AppFile struct {
|
||||||
Path string
|
Path string
|
||||||
Server string
|
Server string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AppFiles is a slice of appfiles
|
||||||
type AppFiles map[AppName]AppFile
|
type AppFiles map[AppName]AppFile
|
||||||
|
|
||||||
|
// App reprents an app with its env file read into memory
|
||||||
type App struct {
|
type App struct {
|
||||||
Name AppName
|
Name AppName
|
||||||
Type string
|
Type string
|
||||||
@ -30,12 +37,14 @@ type App struct {
|
|||||||
File AppFile
|
File AppFile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StackName gets what the docker safe stack name is for the app
|
||||||
func (a App) StackName() string {
|
func (a App) StackName() string {
|
||||||
return SanitiseAppName(a.Name)
|
return SanitiseAppName(a.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SORTING TYPES
|
// SORTING TYPES
|
||||||
|
|
||||||
|
// ByServer sort a slice of Apps
|
||||||
type ByServer []App
|
type ByServer []App
|
||||||
|
|
||||||
func (a ByServer) Len() int { return len(a) }
|
func (a ByServer) Len() int { return len(a) }
|
||||||
@ -44,6 +53,7 @@ func (a ByServer) Less(i, j int) bool {
|
|||||||
return strings.ToLower(a[i].File.Server) < strings.ToLower(a[j].File.Server)
|
return strings.ToLower(a[i].File.Server) < strings.ToLower(a[j].File.Server)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ByServerAndType sort a slice of Apps
|
||||||
type ByServerAndType []App
|
type ByServerAndType []App
|
||||||
|
|
||||||
func (a ByServerAndType) Len() int { return len(a) }
|
func (a ByServerAndType) Len() int { return len(a) }
|
||||||
@ -51,11 +61,11 @@ func (a ByServerAndType) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|||||||
func (a ByServerAndType) Less(i, j int) bool {
|
func (a ByServerAndType) Less(i, j int) bool {
|
||||||
if a[i].File.Server == a[j].File.Server {
|
if a[i].File.Server == a[j].File.Server {
|
||||||
return strings.ToLower(a[i].Type) < strings.ToLower(a[j].Type)
|
return strings.ToLower(a[i].Type) < strings.ToLower(a[j].Type)
|
||||||
} else {
|
|
||||||
return strings.ToLower(a[i].File.Server) < strings.ToLower(a[j].File.Server)
|
|
||||||
}
|
}
|
||||||
|
return strings.ToLower(a[i].File.Server) < strings.ToLower(a[j].File.Server)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ByType sort a slice of Apps
|
||||||
type ByType []App
|
type ByType []App
|
||||||
|
|
||||||
func (a ByType) Len() int { return len(a) }
|
func (a ByType) Len() int { return len(a) }
|
||||||
@ -64,6 +74,7 @@ func (a ByType) Less(i, j int) bool {
|
|||||||
return strings.ToLower(a[i].Type) < strings.ToLower(a[j].Type)
|
return strings.ToLower(a[i].Type) < strings.ToLower(a[j].Type)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ByName sort a slice of Apps
|
||||||
type ByName []App
|
type ByName []App
|
||||||
|
|
||||||
func (a ByName) Len() int { return len(a) }
|
func (a ByName) Len() int { return len(a) }
|
||||||
@ -101,6 +112,7 @@ func newApp(env AppEnv, name string, appFile AppFile) (App, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LoadAppFiles gets all app files for a given set of servers or all servers
|
||||||
func LoadAppFiles(servers ...string) (AppFiles, error) {
|
func LoadAppFiles(servers ...string) (AppFiles, error) {
|
||||||
appFiles := make(AppFiles)
|
appFiles := make(AppFiles)
|
||||||
if len(servers) == 1 {
|
if len(servers) == 1 {
|
||||||
@ -146,6 +158,7 @@ func GetApp(apps AppFiles, name AppName) (App, error) {
|
|||||||
return app, nil
|
return app, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetApps returns a slice of Apps with their env files read from a given slice of AppFiles
|
||||||
func GetApps(appFiles AppFiles) ([]App, error) {
|
func GetApps(appFiles AppFiles) ([]App, error) {
|
||||||
var apps []App
|
var apps []App
|
||||||
for name := range appFiles {
|
for name := range appFiles {
|
||||||
@ -158,6 +171,7 @@ func GetApps(appFiles AppFiles) ([]App, error) {
|
|||||||
return apps, nil
|
return apps, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CopyAppEnvSample copies the example env file for the app into the users env files
|
||||||
func CopyAppEnvSample(appType, appName, server string) error {
|
func CopyAppEnvSample(appType, appName, server string) error {
|
||||||
envSamplePath := path.Join(ABRA_DIR, "apps", appType, ".env.sample")
|
envSamplePath := path.Join(ABRA_DIR, "apps", appType, ".env.sample")
|
||||||
envSample, err := ioutil.ReadFile(envSamplePath)
|
envSample, err := ioutil.ReadFile(envSamplePath)
|
||||||
@ -178,10 +192,12 @@ func CopyAppEnvSample(appType, appName, server string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SanitiseAppName makes a app name usable with Docker by replacing illegal characters
|
||||||
func SanitiseAppName(name string) string {
|
func SanitiseAppName(name string) string {
|
||||||
return strings.ReplaceAll(name, ".", "_")
|
return strings.ReplaceAll(name, ".", "_")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAppStatuses queries servers to check the deployment status of given apps
|
||||||
func GetAppStatuses(appFiles AppFiles) (map[string]string, error) {
|
func GetAppStatuses(appFiles AppFiles) (map[string]string, error) {
|
||||||
servers := appFiles.GetServers()
|
servers := appFiles.GetServers()
|
||||||
ch := make(chan client.StackStatus, len(servers))
|
ch := make(chan client.StackStatus, len(servers))
|
||||||
|
@ -100,6 +100,7 @@ func getAllFoldersInDirectory(directory string) ([]string, error) {
|
|||||||
return folders, nil
|
return folders, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EnsureAbraDirExists checks for the abra config folder and throws error if not
|
||||||
func EnsureAbraDirExists() error {
|
func EnsureAbraDirExists() error {
|
||||||
if _, err := os.Stat(ABRA_DIR); os.IsNotExist(err) {
|
if _, err := os.Stat(ABRA_DIR); os.IsNotExist(err) {
|
||||||
if err := os.Mkdir(ABRA_DIR, 0777); err != nil {
|
if err := os.Mkdir(ABRA_DIR, 0777); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user