refactor: move apps listing from common plugin to apps plugin

This helps centralize app-related listing fetching.
This commit is contained in:
Jose Diaz-Gonzalez
2021-11-12 15:54:08 -05:00
parent 9d8de8a9db
commit 62a3eff5bb
45 changed files with 136 additions and 55 deletions

View File

@@ -1,5 +1,13 @@
package apps
import (
"fmt"
"io/ioutil"
"strings"
"github.com/dokku/dokku/plugins/common"
)
var (
// DefaultProperties is a map of all valid network properties with corresponding default property values
DefaultProperties = map[string]string{
@@ -13,3 +21,30 @@ var (
"deploy-source-metadata": true,
}
)
// DokkuApps returns a list of all local apps
func DokkuApps() ([]string, error) {
apps := []string{}
dokkuRoot := common.MustGetEnv("DOKKU_ROOT")
files, err := ioutil.ReadDir(dokkuRoot)
if err != nil {
return apps, fmt.Errorf("You haven't deployed any applications yet")
}
for _, f := range files {
appRoot := common.AppRoot(f.Name())
if !common.DirectoryExists(appRoot) {
continue
}
if strings.HasPrefix(f.Name(), ".") {
continue
}
apps = append(apps, f.Name())
}
if len(apps) == 0 {
return apps, fmt.Errorf("You haven't deployed any applications yet")
}
return apps, nil
}