#!/usr/bin/env bash include cbuild/myprint.sh include cbuild/functions.sh include cbuild/detect_os.sh function load_config { local current_config_path="$1" local default_config_path="$2" TASK="$3" if [ -z "$current_config_path" ]; then error "current_config_path is null" fi if [ -z "$default_config_path" ]; then error "default_config_path is null" fi OS=$(detect_os) myprint "${GREEN}detected OS: $OS" function exec_script_line { local script="$1" local line_num="$2" myprint "${BLUE}reading line $line_num from $script" local line_str="$(sed $line_num'!d' $script)" myprint "$line_str" eval "$line_str" } # getting version of cbuild installation if [ -z "$INSTALLED_CBUILD_VERSION" ]; then error "couldnt get current cbuild installation version" fi # getting version of default config exec_script_line "$default_config_path" 3 DEFAULT_CONFIG_VERSION="$CONFIG_VERSION" unset CONFIG_VERSION # undefined task [ -z "$TASK" ] && TASK="no_task" # error on undefined set -u # reading current config or creating default if [ ! -f "$current_config_path" ]; then myprint "${YELLOW}$current_config_path doesn't exist" cp "$default_config_path" "$current_config_path" myprint "${YELLOW}Created copy (${current_config_path}) of default config (${default_config_path})" fi myprint "${BLUE}reading $current_config_path" include "$current_config_path" myprint "${WHITE}project: ${CYAN}$PROJECT" myprint "${WHITE}${current_config_path} cbuild version: ${CYAN}$CBUILD_VERSION" myprint "${WHITE}installed cbuild version: ${CYAN}$INSTALLED_CBUILD_VERSION" myprint "${WHITE}${current_config_path} version: ${CYAN}$CONFIG_VERSION" myprint "${WHITE}${default_config_path} version: ${CYAN}$DEFAULT_CONFIG_VERSION" # checking versions if [ ! "$CBUILD_VERSION" -eq "$INSTALLED_CBUILD_VERSION" ]; then error "config was created for outdated cbuild version" fi if [ ! "$CONFIG_VERSION" -eq "$DEFAULT_CONFIG_VERSION" ]; then error "config version isn't correct" fi mkdir -p "$OUTDIR" mkdir -p "$OBJDIR/libs" mkdir -p "$OBJDIR/objects" mkdir -p "$OBJDIR/profile" # dont thorw error on undefined variable set +u myprint "${GREEN}cbuild initialized!" }