package apps import ( "fmt" "os" "github.com/dokku/dokku/plugins/common" ) // ReportSingleApp is an internal function that displays the app report for one or more apps func ReportSingleApp(appName string, format string, infoFlag string) error { if err := common.VerifyAppName(appName); err != nil { return err } flags := map[string]common.ReportFunc{ "--app-created-at": reportCreatedAt, "--app-deploy-source": reportDeploySource, "--app-deploy-source-metadata": reportDeploySourceMetadata, "--app-dir": reportDir, "--app-locked": reportLocked, } flagKeys := []string{} for flagKey := range flags { flagKeys = append(flagKeys, flagKey) } trimPrefix := false uppercaseFirstCharacter := true infoFlags := common.CollectReport(appName, infoFlag, flags) return common.ReportSingleApp("app", appName, infoFlag, infoFlags, flagKeys, format, trimPrefix, uppercaseFirstCharacter) } func reportCreatedAt(appName string) string { fi, err := os.Stat(common.AppRoot(appName)) if err != nil { return "" } return fmt.Sprint(fi.ModTime().Unix()) } func reportDeploySource(appName string) string { return common.PropertyGet("apps", appName, "deploy-source") } func reportDeploySourceMetadata(appName string) string { return common.PropertyGet("apps", appName, "deploy-source-metadata") } func reportDir(appName string) string { return common.AppRoot(appName) } func reportLocked(appName string) string { locked := "false" if appIsLocked(appName) { locked = "true" } return locked }