Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ddf27d340 | ||
|
|
6a75d5d509 | ||
|
|
31f737bb09 | ||
|
|
d8c4d28fb0 | ||
|
|
5c59f5adc1 | ||
|
|
c212d68183 | ||
|
|
3f5db87844 | ||
|
|
9e13103e04 | ||
|
|
1896d0d3a4 | ||
|
|
b9349d3ae1 | ||
|
|
e702e01092 | ||
|
|
84ef0a54f6 | ||
|
|
5820f74282 | ||
|
|
d04320b814 | ||
|
|
840fc1fbc5 | ||
|
|
1c1b8e50b4 | ||
|
|
5ef90f7c10 | ||
|
|
a85e451f6d | ||
|
|
00eef2f230 | ||
|
|
e997179643 | ||
|
|
ef6a5ed7d1 | ||
|
|
05f594e9ba | ||
|
|
4bc23d7556 | ||
|
|
579964b63d | ||
|
|
78ecc3b10d | ||
|
|
1b0cd97539 | ||
|
|
3305de6dbd | ||
|
|
1f4d7ceeb2 | ||
|
|
9f0d37450b | ||
|
|
99a5d1c2e8 |
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -51,7 +51,7 @@ jobs:
|
|||||||
|
|
||||||
- run: make test
|
- run: make test
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: tmp/test-results
|
name: tmp/test-results
|
||||||
@@ -93,7 +93,7 @@ jobs:
|
|||||||
|
|
||||||
- run: make test
|
- run: make test
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: tmp/test-results
|
name: tmp/test-results
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
FROM mysql:8.2.0
|
FROM mysql:9.2.0
|
||||||
|
|||||||
5
Makefile
5
Makefile
@@ -1,5 +1,6 @@
|
|||||||
HARDWARE = $(shell uname -m)
|
HARDWARE = $(shell uname -m)
|
||||||
SYSTEM_NAME = $(shell uname -s | tr '[:upper:]' '[:lower:]')
|
SYSTEM_NAME = $(shell uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
ARCH = $(shell dpkg --print-architecture)
|
||||||
SHFMT_VERSION = 3.0.2
|
SHFMT_VERSION = 3.0.2
|
||||||
XUNIT_TO_GITHUB_VERSION = 0.3.0
|
XUNIT_TO_GITHUB_VERSION = 0.3.0
|
||||||
XUNIT_READER_VERSION = 0.1.0
|
XUNIT_READER_VERSION = 0.1.0
|
||||||
@@ -20,8 +21,12 @@ shellcheck:
|
|||||||
ifneq ($(shell shellcheck --version >/dev/null 2>&1 ; echo $$?),0)
|
ifneq ($(shell shellcheck --version >/dev/null 2>&1 ; echo $$?),0)
|
||||||
ifeq ($(SYSTEM_NAME),darwin)
|
ifeq ($(SYSTEM_NAME),darwin)
|
||||||
brew install shellcheck
|
brew install shellcheck
|
||||||
|
else
|
||||||
|
ifeq ($(ARCH),arm64)
|
||||||
|
sudo add-apt-repository 'deb http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse'
|
||||||
else
|
else
|
||||||
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse'
|
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse'
|
||||||
|
endif
|
||||||
sudo rm -rf /var/lib/apt/lists/* && sudo apt-get clean
|
sudo rm -rf /var/lib/apt/lists/* && sudo apt-get clean
|
||||||
sudo apt-get update -qq && sudo apt-get install -qq -y shellcheck
|
sudo apt-get update -qq && sudo apt-get install -qq -y shellcheck
|
||||||
endif
|
endif
|
||||||
|
|||||||
30
README.md
30
README.md
@@ -1,6 +1,6 @@
|
|||||||
# dokku mysql [](https://github.com/dokku/dokku-mysql/actions/workflows/ci.yml?query=branch%3Amaster) [](https://webchat.libera.chat/?channels=dokku)
|
# dokku mysql [](https://github.com/dokku/dokku-mysql/actions/workflows/ci.yml?query=branch%3Amaster) [](https://webchat.libera.chat/?channels=dokku)
|
||||||
|
|
||||||
Official mysql plugin for dokku. Currently defaults to installing [mysql 8.2.0](https://hub.docker.com/_/mysql/).
|
Official mysql plugin for dokku. Currently defaults to installing [mysql 9.2.0](https://hub.docker.com/_/mysql/).
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@@ -24,8 +24,10 @@ mysql:backup-deauth <service> # remove backup authenticatio
|
|||||||
mysql:backup-schedule <service> <schedule> <bucket-name> [--use-iam] # schedule a backup of the mysql service
|
mysql:backup-schedule <service> <schedule> <bucket-name> [--use-iam] # schedule a backup of the mysql service
|
||||||
mysql:backup-schedule-cat <service> # cat the contents of the configured backup cronfile for the service
|
mysql:backup-schedule-cat <service> # cat the contents of the configured backup cronfile for the service
|
||||||
mysql:backup-set-encryption <service> <passphrase> # set encryption for all future backups of mysql service
|
mysql:backup-set-encryption <service> <passphrase> # set encryption for all future backups of mysql service
|
||||||
|
mysql:backup-set-public-key-encryption <service> <public-key-id> # set GPG Public Key encryption for all future backups of mysql service
|
||||||
mysql:backup-unschedule <service> # unschedule the backup of the mysql service
|
mysql:backup-unschedule <service> # unschedule the backup of the mysql service
|
||||||
mysql:backup-unset-encryption <service> # unset encryption for future backups of the mysql service
|
mysql:backup-unset-encryption <service> # unset encryption for future backups of the mysql service
|
||||||
|
mysql:backup-unset-public-key-encryption <service> # unset GPG Public Key encryption for future backups of the mysql service
|
||||||
mysql:clone <service> <new-service> [--clone-flags...] # create container <new-name> then copy data from <name> into <new-name>
|
mysql:clone <service> <new-service> [--clone-flags...] # create container <new-name> then copy data from <name> into <new-name>
|
||||||
mysql:connect <service> # connect to the service via the mysql connection tool
|
mysql:connect <service> # connect to the service via the mysql connection tool
|
||||||
mysql:create <service> [--create-flags...] # create a mysql service
|
mysql:create <service> [--create-flags...] # create a mysql service
|
||||||
@@ -675,6 +677,19 @@ Set the GPG-compatible passphrase for encrypting backups for backups:
|
|||||||
dokku mysql:backup-set-encryption lollipop
|
dokku mysql:backup-set-encryption lollipop
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### set GPG Public Key encryption for all future backups of mysql service
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# usage
|
||||||
|
dokku mysql:backup-set-public-key-encryption <service> <public-key-id>
|
||||||
|
```
|
||||||
|
|
||||||
|
Set the `GPG` Public Key for encrypting backups:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dokku mysql:backup-set-public-key-encryption lollipop
|
||||||
|
```
|
||||||
|
|
||||||
### unset encryption for future backups of the mysql service
|
### unset encryption for future backups of the mysql service
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
@@ -688,6 +703,19 @@ Unset the `GPG` encryption passphrase for backups:
|
|||||||
dokku mysql:backup-unset-encryption lollipop
|
dokku mysql:backup-unset-encryption lollipop
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### unset GPG Public Key encryption for future backups of the mysql service
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# usage
|
||||||
|
dokku mysql:backup-unset-public-key-encryption <service>
|
||||||
|
```
|
||||||
|
|
||||||
|
Unset the `GPG` Public Key encryption for backups:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dokku mysql:backup-unset-public-key-encryption lollipop
|
||||||
|
```
|
||||||
|
|
||||||
### schedule a backup of the mysql service
|
### schedule a backup of the mysql service
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
@@ -290,7 +290,9 @@ def usage_backup(
|
|||||||
"backup-deauth",
|
"backup-deauth",
|
||||||
"backup",
|
"backup",
|
||||||
"backup-set-encryption",
|
"backup-set-encryption",
|
||||||
|
"backup-set-public-key-encryption",
|
||||||
"backup-unset-encryption",
|
"backup-unset-encryption",
|
||||||
|
"backup-unset-public-key-encryption",
|
||||||
"backup-schedule",
|
"backup-schedule",
|
||||||
"backup-schedule-cat",
|
"backup-schedule-cat",
|
||||||
"backup-unschedule",
|
"backup-unschedule",
|
||||||
|
|||||||
@@ -308,6 +308,10 @@ service_backup() {
|
|||||||
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -e ENCRYPTION_KEY=$(cat "$BACKUP_ENCRYPTION_CONFIG_ROOT/ENCRYPTION_KEY")"
|
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -e ENCRYPTION_KEY=$(cat "$BACKUP_ENCRYPTION_CONFIG_ROOT/ENCRYPTION_KEY")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -f "$BACKUP_ENCRYPTION_CONFIG_ROOT/ENCRYPT_WITH_PUBLIC_KEY_ID" ]]; then
|
||||||
|
BACKUP_PARAMETERS="$BACKUP_PARAMETERS -e ENCRYPT_WITH_PUBLIC_KEY_ID=$(cat "$BACKUP_ENCRYPTION_CONFIG_ROOT/ENCRYPT_WITH_PUBLIC_KEY_ID")"
|
||||||
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
"$DOCKER_BIN" container run --rm $BACKUP_PARAMETERS "$PLUGIN_S3BACKUP_IMAGE"
|
"$DOCKER_BIN" container run --rm $BACKUP_PARAMETERS "$PLUGIN_S3BACKUP_IMAGE"
|
||||||
}
|
}
|
||||||
@@ -433,6 +437,16 @@ service_backup_set_encryption() {
|
|||||||
echo "$ENCRYPTION_KEY" >"${SERVICE_BACKUP_ENCRYPTION_ROOT}/ENCRYPTION_KEY"
|
echo "$ENCRYPTION_KEY" >"${SERVICE_BACKUP_ENCRYPTION_ROOT}/ENCRYPTION_KEY"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service_backup_set_public_key_encryption() {
|
||||||
|
declare desc="set up backup GPG Public Key encryption"
|
||||||
|
declare SERVICE="$1" ENCRYPT_WITH_PUBLIC_KEY_ID="$2"
|
||||||
|
local SERVICE_ROOT="${PLUGIN_DATA_ROOT}/${SERVICE}"
|
||||||
|
local SERVICE_BACKUP_ENCRYPTION_ROOT="${SERVICE_ROOT}/backup-encryption/"
|
||||||
|
|
||||||
|
mkdir "$SERVICE_BACKUP_ENCRYPTION_ROOT"
|
||||||
|
echo "$ENCRYPT_WITH_PUBLIC_KEY_ID" >"${SERVICE_BACKUP_ENCRYPTION_ROOT}/ENCRYPT_WITH_PUBLIC_KEY_ID"
|
||||||
|
}
|
||||||
|
|
||||||
service_backup_unschedule() {
|
service_backup_unschedule() {
|
||||||
declare desc="unschedule the backup of the service"
|
declare desc="unschedule the backup of the service"
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$1"
|
||||||
@@ -450,6 +464,15 @@ service_backup_unset_encryption() {
|
|||||||
rm -rf "$SERVICE_BACKUP_ENCRYPTION_ROOT"
|
rm -rf "$SERVICE_BACKUP_ENCRYPTION_ROOT"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service_backup_unset_encryption() {
|
||||||
|
declare desc="remove backup encryption"
|
||||||
|
declare SERVICE="$1"
|
||||||
|
local SERVICE_ROOT="${PLUGIN_DATA_ROOT}/${SERVICE}"
|
||||||
|
local SERVICE_BACKUP_ENCRYPTION_ROOT="${SERVICE_ROOT}/backup-encryption/"
|
||||||
|
|
||||||
|
rm -rf "$SERVICE_BACKUP_ENCRYPTION_ROOT"
|
||||||
|
}
|
||||||
|
|
||||||
service_container_rm() {
|
service_container_rm() {
|
||||||
declare desc="stop a service and remove the running container"
|
declare desc="stop a service and remove the running container"
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$1"
|
||||||
|
|||||||
8
config
8
config
@@ -28,9 +28,9 @@ if [[ -n $DOKKU_API_VERSION ]]; then
|
|||||||
export PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
export PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PLUGIN_BUSYBOX_IMAGE="busybox:1.34.1-uclibc"
|
export PLUGIN_BUSYBOX_IMAGE=${PLUGIN_BUSYBOX_IMAGE:=busybox:1.37.0-uclibc}
|
||||||
export PLUGIN_AMBASSADOR_IMAGE="dokku/ambassador:0.5.0"
|
export PLUGIN_AMBASSADOR_IMAGE=${PLUGIN_AMBASSADOR_IMAGE:=dokku/ambassador:0.8.2}
|
||||||
export PLUGIN_S3BACKUP_IMAGE="dokku/s3backup:0.14.0"
|
export PLUGIN_S3BACKUP_IMAGE=${PLUGIN_S3BACKUP_IMAGE:=dokku/s3backup:0.18.0}
|
||||||
export PLUGIN_WAIT_IMAGE="dokku/wait:0.6.0"
|
export PLUGIN_WAIT_IMAGE=${PLUGIN_WAIT_IMAGE:=dokku/wait:0.9.3}
|
||||||
|
|
||||||
export MYSQL_CONFIG_OPTIONS=${MYSQL_CONFIG_OPTIONS:=""}
|
export MYSQL_CONFIG_OPTIONS=${MYSQL_CONFIG_OPTIONS:=""}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[plugin]
|
[plugin]
|
||||||
description = "dokku mysql service plugin"
|
description = "dokku mysql service plugin"
|
||||||
version = "1.37.1"
|
version = "1.41.1"
|
||||||
[plugin.config]
|
[plugin.config]
|
||||||
|
|||||||
25
subcommands/backup-set-public-key-encryption
Executable file
25
subcommands/backup-set-public-key-encryption
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config"
|
||||||
|
set -eo pipefail
|
||||||
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||||
|
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions"
|
||||||
|
|
||||||
|
service-backup-set-public-key-encryption-cmd() {
|
||||||
|
#E set the GPG Public Key for encrypting backups
|
||||||
|
#E dokku $PLUGIN_COMMAND_PREFIX:backup-set-public-key-encryption lollipop
|
||||||
|
#A service, service to run command against
|
||||||
|
#A public-key-id, a GPG Public Key ID (or fingerprint) to use for encryption. Must be uploaded to the GPG keyserver beforehand.
|
||||||
|
declare desc="set GPG Public Key encryption for all future backups of $PLUGIN_SERVICE service"
|
||||||
|
local cmd="$PLUGIN_COMMAND_PREFIX:backup-set-public-key-encryption" argv=("$@")
|
||||||
|
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
||||||
|
declare SERVICE="$1" PUBLIC_KEY_ID="$2"
|
||||||
|
is_implemented_command "$cmd" || dokku_log_fail "Not yet implemented"
|
||||||
|
|
||||||
|
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
||||||
|
[[ -z "$PUBLIC_KEY_ID" ]] && dokku_log_fail "Please specify a valid GPG Public Key ID (or fingerprint)"
|
||||||
|
verify_service_name "$SERVICE"
|
||||||
|
service_backup_set_public_key_encryption "$SERVICE" "$PUBLIC_KEY_ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
service-backup-set-public-key-encryption-cmd "$@"
|
||||||
23
subcommands/backup-unset-public-key-encryption
Executable file
23
subcommands/backup-unset-public-key-encryption
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config"
|
||||||
|
set -eo pipefail
|
||||||
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||||
|
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions"
|
||||||
|
|
||||||
|
service-backup-unset-public-key-encryption-cmd() {
|
||||||
|
#E unset the GPG Public Key encryption for backups
|
||||||
|
#E dokku $PLUGIN_COMMAND_PREFIX:backup-unset-public-key-encryption lollipop
|
||||||
|
#A service, service to run command against
|
||||||
|
declare desc="unset GPG Public Key encryption for future backups of the $PLUGIN_SERVICE service"
|
||||||
|
local cmd="$PLUGIN_COMMAND_PREFIX:backup-unset-public-key-encryption" argv=("$@")
|
||||||
|
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
||||||
|
declare SERVICE="$1"
|
||||||
|
is_implemented_command "$cmd" || dokku_log_fail "Not yet implemented" # TODO: [22.03.2024 by Mykola]
|
||||||
|
|
||||||
|
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
||||||
|
verify_service_name "$SERVICE"
|
||||||
|
service_backup_unset_public_key_encryption "$SERVICE" # TODO: [22.03.2024 by Mykola]
|
||||||
|
}
|
||||||
|
|
||||||
|
service-backup-unset-encryption-cmd "$@"
|
||||||
@@ -48,7 +48,7 @@ teardown() {
|
|||||||
assert_output_contains bridge 0
|
assert_output_contains bridge 0
|
||||||
assert_output_contains custom-network
|
assert_output_contains custom-network
|
||||||
|
|
||||||
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
@@ -120,7 +120,7 @@ teardown() {
|
|||||||
assert_output_contains custom-network
|
assert_output_contains custom-network
|
||||||
assert_output_contains bridge
|
assert_output_contains bridge
|
||||||
|
|
||||||
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
@@ -192,7 +192,7 @@ teardown() {
|
|||||||
assert_output_contains bridge
|
assert_output_contains bridge
|
||||||
assert_output_contains custom-network
|
assert_output_contains custom-network
|
||||||
|
|
||||||
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
@@ -258,7 +258,7 @@ teardown() {
|
|||||||
assert_output_contains bridge
|
assert_output_contains bridge
|
||||||
assert_output_contains custom-network
|
assert_output_contains custom-network
|
||||||
|
|
||||||
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.lsa -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.lsa -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# SC1090 - Can't follow non-constant source. Use a directive to specify location - https://github.com/koalaman/shellcheck/wiki/SC1090
|
# SC1090 - Can't follow non-constant source. Use a directive to specify location - https://github.com/koalaman/shellcheck/wiki/SC1090
|
||||||
|
# SC1091 - Not following - <https://github.com/koalaman/shellcheck/wiki/SC1091>
|
||||||
# SC2034 - Variable appears unused. Verify it or export it - https://github.com/koalaman/shellcheck/wiki/SC2034
|
# SC2034 - Variable appears unused. Verify it or export it - https://github.com/koalaman/shellcheck/wiki/SC2034
|
||||||
# SC2155 - Declare and assign separately to avoid masking return values - https://github.com/koalaman/shellcheck/wiki/SC2155
|
# SC2155 - Declare and assign separately to avoid masking return values - https://github.com/koalaman/shellcheck/wiki/SC2155
|
||||||
# SC2206 - Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a - https://github.com/koalaman/shellcheck/wiki/SC2206
|
# SC2206 - Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a - https://github.com/koalaman/shellcheck/wiki/SC2206
|
||||||
|
|||||||
Reference in New Issue
Block a user