Prepare dapostinstall v2
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
log() {
|
||||
printf '[%s] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$*"
|
||||
}
|
||||
|
||||
fail() {
|
||||
printf 'ERROR: %s\n' "$*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
run_step() {
|
||||
local message="$1"
|
||||
shift
|
||||
log "$message"
|
||||
"$@"
|
||||
}
|
||||
|
||||
require_root() {
|
||||
[[ "${EUID}" -eq 0 ]] || fail "Ten skrypt musi byc uruchomiony jako root."
|
||||
}
|
||||
|
||||
require_file() {
|
||||
local path="$1"
|
||||
[[ -f "$path" ]] || fail "Brak wymaganego pliku: $path"
|
||||
}
|
||||
|
||||
require_dir() {
|
||||
local path="$1"
|
||||
[[ -d "$path" ]] || fail "Brak wymaganego katalogu: $path"
|
||||
}
|
||||
|
||||
set_key_value() {
|
||||
local path="$1"
|
||||
local key="$2"
|
||||
local value="$3"
|
||||
|
||||
touch "$path"
|
||||
if grep -qE "^${key}=" "$path"; then
|
||||
sed -i -E "s|^${key}=.*|${key}=${value}|" "$path"
|
||||
else
|
||||
printf '%s=%s\n' "$key" "$value" >> "$path"
|
||||
fi
|
||||
}
|
||||
|
||||
get_key_value() {
|
||||
local path="$1"
|
||||
local key="$2"
|
||||
local value
|
||||
|
||||
value="$(grep -m1 -E "^${key}=" "$path" | cut -d= -f2-)"
|
||||
[[ -n "$value" ]] || fail "Brak wartosci $key w $path"
|
||||
printf '%s\n' "$value"
|
||||
}
|
||||
|
||||
get_optional_key_value() {
|
||||
local path="$1"
|
||||
local key="$2"
|
||||
|
||||
grep -m1 -E "^${key}=" "$path" | cut -d= -f2- || true
|
||||
}
|
||||
|
||||
get_php_release_list() {
|
||||
local path="$1"
|
||||
local value
|
||||
local first=1
|
||||
local idx
|
||||
|
||||
for idx in 1 2 3 4 5 6 7 8 9; do
|
||||
value="$(get_optional_key_value "$path" "php${idx}_release")"
|
||||
[[ -n "$value" && "$value" != "no" ]] || continue
|
||||
|
||||
if [[ "$first" -eq 1 ]]; then
|
||||
printf 'PHP %s (domyślna)' "$value"
|
||||
first=0
|
||||
else
|
||||
printf '\nPHP %s' "$value"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
render_template() {
|
||||
local template="$1"
|
||||
local output="$2"
|
||||
|
||||
perl -pe 's/\{\{([A-Z0-9_]+)\}\}/exists $ENV{$1} ? $ENV{$1} : $&/ge' "$template" > "$output"
|
||||
}
|
||||
Reference in New Issue
Block a user