这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/development/plugin-triggers.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```

### `app-list`

- Description: Lists all apps in available to the currently logged in user. Optionally disables filtering by user if the first argument is `false`.
- Invoked by:
- Arguments: `$FILTER`
- Example:

```shell
#!/usr/bin/env bash

set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x

# TODO
```

### `app-json-process-deploy-parallelism`

- Description: Decides the parallelism to use when deploying a given process type. The default is 1 process entry at a type.
Expand Down
6 changes: 6 additions & 0 deletions plugins/20_events/app-list
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"

[[ ! "$DOKKU_EVENTS" ]] || dokku_log_plugn_trigger_call "$(basename "$0")" "$@"
4 changes: 2 additions & 2 deletions plugins/checks/install
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ migrate_checks_vars_0_5_0() {
local GLOBAL_SKIP_ALL_CHECKS=$(config_get --global DOKKU_SKIP_ALL_CHECKS || true)
local GLOBAL_SKIP_DEFAULT_CHECKS=$(config_get --global DOKKU_SKIP_DEFAULT_CHECKS || true)

for app in $(dokku_apps); do
for app in $(dokku_apps "false"); do
local APP_SKIP_ALL_CHECKS=$(config_get "$app" DOKKU_SKIP_ALL_CHECKS || true)
local APP_SKIP_DEFAULT_CHECKS=$(config_get "$app" DOKKU_SKIP_DEFAULT_CHECKS || true)

Expand All @@ -35,7 +35,7 @@ migrate_checks_vars_0_5_0() {
migrate_checks_vars_0_6_0() {
declare desc="migrates CHECKS config variables from 0.5.x to support fully-disabled zero-downtime checks"

for app in $(dokku_apps); do
for app in $(dokku_apps "false"); do
local APP_DOKKU_CHECKS_ENABLED=$(config_get "$app" DOKKU_CHECKS_ENABLED || true)
if [[ $APP_DOKKU_CHECKS_ENABLED ]]; then
dokku_log_info1 "Migrating zero downtime env variables to 0.6.x. The following variables will be migrated"
Expand Down
12 changes: 11 additions & 1 deletion plugins/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,16 @@ func GetRunningImageTag(appName string, imageTag string) (string, error) {

// DokkuApps returns a list of all local apps
func DokkuApps() ([]string, error) {
apps, err := UnfilteredDokkuApps()
if err != nil {
return apps, err
}

return filterApps(apps)
}

// UnfilteredDokkuApps returns an unfiltered list of all local apps
func UnfilteredDokkuApps() ([]string, error) {
apps := []string{}
dokkuRoot := MustGetEnv("DOKKU_ROOT")
files, err := ioutil.ReadDir(dokkuRoot)
Expand All @@ -267,7 +277,7 @@ func DokkuApps() ([]string, error) {
return apps, fmt.Errorf("You haven't deployed any applications yet")
}

return filterApps(apps)
return apps, nil
}

// GetAppImageName returns image identifier for a given app, tag tuple. validate if tag is presented
Expand Down
3 changes: 2 additions & 1 deletion plugins/common/functions
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ has_tty() {

dokku_apps() {
declare desc="prints list of all local apps"
local INSTALLED_APPS="$(plugn trigger app-list)"
declare FILTER="$1"
local INSTALLED_APPS="$(plugn trigger app-list "$FILTER")"
if [[ -z "$INSTALLED_APPS" ]]; then
dokku_log_fail "You haven't deployed any applications yet"
fi
Expand Down
7 changes: 6 additions & 1 deletion plugins/common/src/triggers/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@ func main() {
var err error
switch trigger {
case "app-list":
err = common.TriggerAppList()
filtered := flag.Arg(0)
if filtered == "" {
filtered = "true"
}
filter := common.ToBool(filtered)
err = common.TriggerAppList(filter)
case "core-post-deploy":
appName := flag.Arg(0)
err = common.TriggerCorePostDeploy(appName)
Expand Down
12 changes: 9 additions & 3 deletions plugins/common/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,14 @@ import (
)

// TriggerAppList outputs each app name to stdout on a newline
func TriggerAppList() error {
apps, _ := DokkuApps()
func TriggerAppList(filtered bool) error {
var apps []string
if filtered {
apps, _ = DokkuApps()
} else {
apps, _ = UnfilteredDokkuApps()
}

for _, app := range apps {
Log(app)
}
Expand All @@ -30,7 +36,7 @@ func TriggerInstall() error {
return fmt.Errorf("Unable to install the common plugin: %s", err.Error())
}

apps, err := DokkuApps()
apps, err := UnfilteredDokkuApps()
if err != nil {
return nil
}
Expand Down
2 changes: 1 addition & 1 deletion plugins/cron/functions.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func deleteCrontab() error {
}

func writeCronEntries() error {
apps, _ := common.DokkuApps()
apps, _ := common.UnfilteredDokkuApps()
commands := []templateCommand{}
for _, appName := range apps {
scheduler := common.GetAppScheduler(appName)
Expand Down
2 changes: 1 addition & 1 deletion plugins/domains/install
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ trigger-domains-install() {
declare trigger="install"

shopt -s nullglob
for app in $(dokku_apps); do
for app in $(dokku_apps "false"); do
domains_setup "$app"
done
}
Expand Down
2 changes: 1 addition & 1 deletion plugins/git/install
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ migrate_git_vars_0_12_0() {
DOKKU_QUIET_OUTPUT=1 config_unset --global DOKKU_DEPLOY_BRANCH || true
fi

for app in $(dokku_apps); do
for app in $(dokku_apps "false"); do
DOKKU_DEPLOY_BRANCH=$(config_get "$app" DOKKU_DEPLOY_BRANCH || true)
if [[ -n "$DOKKU_DEPLOY_BRANCH" ]]; then
fn-plugin-property-write "git" "$app" "deploy-branch" "$DOKKU_DEPLOY_BRANCH"
Expand Down
2 changes: 1 addition & 1 deletion plugins/logs/functions.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ func sinkValueToConfig(appName string, sinkValue string) (vectorSink, error) {
}

func writeVectorConfig() error {
apps, _ := common.DokkuApps()
apps, _ := common.UnfilteredDokkuApps()
data := vectorConfig{
Sources: map[string]vectorSource{},
Sinks: map[string]vectorSink{},
Expand Down
2 changes: 1 addition & 1 deletion plugins/network/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func TriggerInstall() error {
return fmt.Errorf("Unable to install the network plugin: %s", err.Error())
}

apps, err := common.DokkuApps()
apps, err := common.UnfilteredDokkuApps()
if err != nil {
return nil
}
Expand Down
2 changes: 1 addition & 1 deletion plugins/nginx-vhosts/functions
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ validate_nginx() {
verify_app_name "$APP"
nginx_vhosts_validate_single_func "$APP" "$FLAG"
else
for app in $(dokku_apps); do
for app in $(dokku_apps "false"); do
nginx_vhosts_validate_single_func "$app" "$FLAG"
done
fi
Expand Down
2 changes: 1 addition & 1 deletion plugins/nginx-vhosts/install
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ trigger-nginx-vhosts-install() {
[[ -f /etc/logrotate.d/nginx ]] && sed -i -e 's/invoke-rc.d/service/g' /etc/logrotate.d/nginx

# @TODO: Remove this after a few versions
for app in $(dokku_apps); do
for app in $(dokku_apps "false"); do
nginx_port="$(config_get "$app" DOKKU_NGINX_PORT || true)"
nginx_ssl_port="$(config_get "$app" DOKKU_NGINX_SSL_PORT || true)"
if [[ -n "$nginx_port" ]] || [[ -n "$nginx_ssl_port" ]]; then
Expand Down
2 changes: 1 addition & 1 deletion plugins/ps/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func TriggerInstall() error {
return err
}

apps, err := common.DokkuApps()
apps, err := common.UnfilteredDokkuApps()
if err != nil {
return nil
}
Expand Down
2 changes: 1 addition & 1 deletion plugins/scheduler/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func TriggerInstall() error {
return fmt.Errorf("Unable to install the scheduler plugin: %s", err.Error())
}

apps, err := common.DokkuApps()
apps, err := common.UnfilteredDokkuApps()
if err != nil {
return nil
}
Expand Down