# Copyright: (c) Huawei Technologies Co., Ltd. 2021-2023. All rights reserved.

set -e
HOME_DIR=$(bash -c "cd ~$(printf %q "$1") && pwd")
BASH_CONFIG_PATH="$HOME_DIR/.bashrc"
ZSH_CONFIG_PATH="$HOME_DIR/.zshrc"
FISH_CONFIG_DIR="$HOME_DIR/.config/fish"
FISH_CONFIG_PATH="$FISH_CONFIG_DIR/config.fish"
AGCLI_CONFIG_PATH="$HOME_DIR/.config/agcli"
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

mkdir -p "$AGCLI_CONFIG_PATH"

appendIfMissing() {
  source=$1
  target=$2
  sourceContent=$(<"$source")
  targetContent=$(<"$target")
  [[ "$targetContent" == *"$sourceContent"* ]] || cat "$source" >> "$target"
}

if command -v bash &> /dev/null; then
  touch "$BASH_CONFIG_PATH"
  appendIfMissing "$SCRIPT_DIR/profile_config.bash" "$BASH_CONFIG_PATH"
  cp "$SCRIPT_DIR/autocompletion.bash" "$AGCLI_CONFIG_PATH/autocompletion.bash"
fi

if command -v fish &> /dev/null; then
  mkdir -p "$FISH_CONFIG_DIR"
  touch "$FISH_CONFIG_PATH"
  appendIfMissing "$SCRIPT_DIR/profile_config.fish" "$FISH_CONFIG_PATH"
  cp "$SCRIPT_DIR/autocompletion.fish" "$AGCLI_CONFIG_PATH/autocompletion.fish"
fi

if command -v zsh &> /dev/null; then
  touch "$ZSH_CONFIG_PATH"
  appendIfMissing "$SCRIPT_DIR/profile_config.zsh" "$ZSH_CONFIG_PATH"
  cp "$SCRIPT_DIR/autocompletion.zsh" "$AGCLI_CONFIG_PATH/autocompletion.zsh"
fi
