diff --git a/plugins/storage/functions b/plugins/storage/functions index 6fc97da21..d8b8e4dae 100755 --- a/plugins/storage/functions +++ b/plugins/storage/functions @@ -6,7 +6,13 @@ source "$PLUGIN_AVAILABLE_PATH/docker-options/functions" verify_paths() { declare desc="verifies storage paths" - echo "$1" | grep -qe '^/.*\:/' || dokku_log_fail "Storage path must be two valid paths divided by colon." + local -r passed_path=$1 + if [[ "$passed_path" = /* ]]; then + echo "$passed_path" | grep -qe '^/.*\:/' || dokku_log_fail "Storage path must be two valid paths divided by colon." + else + echo "$passed_path" | grep -qe '^[a-zA-Z0-9]\{1\}[a-zA-Z0-9_.-]\+\:\/' || dokku_log_fail "Volume name must be two characters or more. Volume name must not contain invalid characters. Storage path must be two valid paths divided by colon." + fi + } check_if_path_exists() { diff --git a/tests/unit/storage.bats b/tests/unit/storage.bats index 1c0dacb35..8a20f0be8 100644 --- a/tests/unit/storage.bats +++ b/tests/unit/storage.bats @@ -53,4 +53,8 @@ teardown() { echo "status: $status" assert_output " ! Mount path does not exist." assert_failure + run /bin/bash -c "dokku storage:mount $TEST_APP mount_volume:/mount" + echo "output: $output" + echo "status: $status" + assert_success }