Files
lehuo/infra/ubuntu/scripts/lib.sh
T

47 lines
938 B
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
set -Eeuo pipefail
ubuntu_dir() {
cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd
}
repo_root() {
cd -- "$(ubuntu_dir)/../.." && pwd
}
compose_file() {
printf '%s/compose.yaml\n' "$(ubuntu_dir)"
}
require_command() {
command -v "$1" >/dev/null 2>&1 || {
printf '缺少命令:%s\n' "$1" >&2
exit 1
}
}
require_env_file() {
local file="$1"
[[ -f "$file" ]] || {
printf '环境文件不存在:%s\n' "$file" >&2
exit 1
}
local mode
mode="$(stat -c '%a' "$file")"
if [[ "$mode" != '600' && "$mode" != '400' ]]; then
printf '环境文件权限必须是 600 或 400,当前为 %s:%s\n' "$mode" "$file" >&2
exit 1
fi
}
env_value() {
local file="$1"
local key="$2"
sed -n "s/^${key}=//p" "$file" | tail -n 1
}
compose() {
local env_file="$1"
shift
docker compose --project-directory "$(ubuntu_dir)" --env-file "$env_file" -f "$(compose_file)" "$@"
}