diff options
Diffstat (limited to 'src/lib/bootstrap.source.sh')
| -rw-r--r-- | src/lib/bootstrap.source.sh | 161 |
1 files changed, 7 insertions, 154 deletions
diff --git a/src/lib/bootstrap.source.sh b/src/lib/bootstrap.source.sh index 2b19e58..52c0599 100644 --- a/src/lib/bootstrap.source.sh +++ b/src/lib/bootstrap.source.sh @@ -1,3 +1,10 @@ +# Startup wiring: the CLI usage/help text plus the shared config-array parser. +# Logging utilities now live in logging.source.sh and path resolution in +# paths.source.sh (split out by task jn0). resolve_config_array stays here +# because it is the shared "array or scalar config" parser used by the config +# modules. All library modules are sourced before any code runs, so definition +# order does not affect availability. + usage() { cat - <<USAGE >&2 Usage: @@ -39,30 +46,6 @@ usage() { USAGE } -output_is_quiet() { - [ "$SHURIKEN_OUTPUT_MODE" = quiet ] -} - -output_is_verbose() { - [ "$SHURIKEN_OUTPUT_MODE" = verbose ] -} - -log_info() { - if ! output_is_quiet; then - printf '%s\n' "$*" - fi -} - -log_verbose() { - if output_is_verbose; then - printf 'Verbose: %s\n' "$*" - fi -} - -log_warning() { - printf 'WARNING: %s\n' "$*" >&2 -} - # Read a configuration value into the named array, accepting both Bash array # and whitespace-separated scalar declarations of the same variable. # This is shared by resolve_tar_opts and resolve_sync_destinations so the @@ -104,133 +87,3 @@ resolve_config_array() { ;; esac } - -resolve_default_rc_file() { - local source_root - - if [ -f "$DEFAULTRC" ]; then - printf '%s\n' "$DEFAULTRC" - return - fi - - source_root=$(resolve_source_root) - - if [ -n "$source_root" ]; then - printf '%s\n' "$source_root/src/shuriken.default.conf" - return - fi - - printf '%s\n' "$DEFAULTRC" -} - -resolve_source_root() { - local script_dir - local source_root - - script_dir="$SHURIKEN_SOURCE_DIR" - source_root=$(cd "$script_dir/.." && pwd) - - if [[ -f "$source_root/src/shuriken.default.conf" \ - && -d "$source_root/share/templates/default" ]]; then - printf '%s\n' "$source_root" - fi -} - -resolve_default_template_dir() { - local source_root - - if [ -d "$DEFAULT_TEMPLATE_DIR" ]; then - printf '%s\n' "$DEFAULT_TEMPLATE_DIR" - return - fi - - source_root=$(resolve_source_root) - - if [ -n "$source_root" ]; then - printf '%s\n' "$source_root/share/templates/default" - return - fi - - printf '%s\n' "$DEFAULT_TEMPLATE_DIR" -} - -resolve_default_asset_dir() { - local source_root - - if [ -d "$DEFAULT_ASSET_DIR" ]; then - printf '%s\n' "$DEFAULT_ASSET_DIR" - return - fi - - source_root=$(resolve_source_root) - - if [ -n "$source_root" ]; then - printf '%s\n' "$source_root/assets/site" - return - fi - - printf '%s\n' "$DEFAULT_ASSET_DIR" -} - -template_dir_uses_default() { - if [ -z "${TEMPLATE_DIR+x}" ] || [ -z "$TEMPLATE_DIR" ]; then - return 1 - fi - - case "$TEMPLATE_DIR" in - "$PACKAGED_TEMPLATE_DIR"|"$DEFAULT_TEMPLATE_DIR") - return 0 - ;; - *) - return 1 - ;; - esac -} - -apply_template_dir_default() { - if template_dir_uses_default; then - TEMPLATE_DIR=$(resolve_default_template_dir) - fi -} - -init_config() { - local -r rc_file=shuriken.conf - local default_rc_file - local rewritten_rc_file - local source_root - local source_template_dir - - if [ -f "$rc_file" ]; then - printf 'Error: %s already exists\n' "$rc_file" >&2 - exit 1 - fi - - default_rc_file=$(resolve_default_rc_file) - - if [ ! -f "$default_rc_file" ]; then - printf 'Error: Can not find config file %s\n' "$default_rc_file" >&2 - exit 1 - fi - - cp "$default_rc_file" "$rc_file" - - source_root=$(resolve_source_root) - if [[ -n "$source_root" \ - && "$default_rc_file" = "$source_root/src/shuriken.default.conf" ]]; then - source_template_dir="$source_root/share/templates/default" - rewritten_rc_file=$(mktemp "${rc_file}.XXXXXX") - if ! awk -v template_dir="$source_template_dir" \ - '/^TEMPLATE_DIR=/ { - print "TEMPLATE_DIR=" template_dir - next - } - { print }' "$rc_file" > "$rewritten_rc_file"; then - rm -f "$rewritten_rc_file" - exit 1 - fi - cat "$rewritten_rc_file" > "$rc_file" - rm -f "$rewritten_rc_file" - fi - - log_info "Created ./$rc_file" -} |
