#!/usr/bin/bash
# Rust setup helper script

echo "Thank you for using Rust installer~"

init () {
  echo "
  ------------------------------------------------------------------
                         Installing Rust...
  ------------------------------------------------------------------
  Select a version you want to install:
  
  1. Basic Installation
       - Contains only the basic functionality for Rust development
  2. Standard Installation [Default]
       - Contains core toolchains provided by Rust-lang, such as
         clippy, rustfmt, rls, etc.
  3. Full Installation
       - Contains additional third-party tools that are helpful for
         Rust development/testing
  "
  
  read -p "Enter your choice [2]: " choice
  choice=${choice:-2}
  
  case $choice in
  
    1)
      echo "Running operation for Basic Installation..."
      echo "Removing unecessary files..."
      sudo rm -rf /usr/rust/optional
      echo "Done!"
      ;;
    2)
      echo "Running operation for Standard Installation..."
      __init_standard
      echo "Removing residual files..."
      sudo rm -rf /usr/rust/optional
      echo "Done!"
      ;;
    3)
      echo "Running operation for Full Installation..."
      __init_standard
      echo "Removing residual files..."
      sudo rm -rf /usr/rust/optional
      echo "Done!"
      ;;
  esac
  
  sudo grep -qxF `export PATH="$PATH:/usr/rust/bin"` ~/.bashrc || echo `export PATH="$PATH:/usr/rust/bin"` >> ~/.bashrc
  sudo source ~/.bashrc
}

__init_standard () {
  echo "Installing clippy..."
  sudo cp -rn /usr/rust/optional/clippy/* /usr/rust/
  echo "Installing rustfmt..."
  sudo cp -rn /usr/rust/optional/rustfmt/* /usr/rust/
  echo "Installing llvm-tools..."
  sudo cp -rn /usr/rust/optional/llvm-tools/* /usr/rust/
  echo "Installing rls..."
  sudo cp -rn /usr/rust/optional/rls/* /usr/rust/
  echo "Installing rust-analysis..."
  sudo cp -rn /usr/rust/optional/rust-analysis/* /usr/rust/
  echo "Installing rust-demangler..."
  sudo cp -rn /usr/rust/optional/rust-demangler/* /usr/rust/
  echo "Installing rust-docs..."
  sudo cp -rn /usr/rust/optional/rust-docs/* /usr/rust/
}

"$@"
