diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml new file mode 100644 index 0000000..98b459b --- /dev/null +++ b/.github/workflows/shellcheck.yml @@ -0,0 +1,18 @@ +name: ShellCheck + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + shellcheck: + name: Run ShellCheck + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Run ShellCheck + run: shellcheck macos/*.sh linux/*.sh diff --git a/linux/install_tools_arm64.sh b/linux/install_tools_arm64.sh index 5b15a74..f597c86 100644 --- a/linux/install_tools_arm64.sh +++ b/linux/install_tools_arm64.sh @@ -39,11 +39,14 @@ if [ ! -d "$HOME/.nvm" ]; then # Load NVM into current session export NVM_DIR="$HOME/.nvm" + # shellcheck disable=SC1091 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + # shellcheck disable=SC1091 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" else echo "NVM is already installed." export NVM_DIR="$HOME/.nvm" + # shellcheck disable=SC1091 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" fi @@ -81,14 +84,14 @@ if ! command -v docker &> /dev/null; then curl -sSL https://get.docker.com | sh # Add current user to docker group - sudo usermod -aG docker $USER + sudo usermod -aG docker "$USER" echo "Docker installed. You may need to log out and back in for group changes to take effect." else echo "Docker is already installed." # Ensure user is in docker group - if ! groups $USER | grep -q '\bdocker\b'; then + if ! groups "$USER" | grep -q '\bdocker\b'; then echo "Adding user to docker group..." - sudo usermod -aG docker $USER + sudo usermod -aG docker "$USER" echo "You may need to log out and back in for group changes to take effect." fi fi diff --git a/linux/install_tools_x86.sh b/linux/install_tools_x86.sh index 705f16e..03709ca 100644 --- a/linux/install_tools_x86.sh +++ b/linux/install_tools_x86.sh @@ -39,11 +39,14 @@ if [ ! -d "$HOME/.nvm" ]; then # Load NVM into current session export NVM_DIR="$HOME/.nvm" + # shellcheck disable=SC1091 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + # shellcheck disable=SC1091 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" else echo "NVM is already installed." export NVM_DIR="$HOME/.nvm" + # shellcheck disable=SC1091 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" fi @@ -81,14 +84,14 @@ if ! command -v docker &> /dev/null; then curl -sSL https://get.docker.com | sh # Add current user to docker group - sudo usermod -aG docker $USER + sudo usermod -aG docker "$USER" echo "Docker installed. You may need to log out and back in for group changes to take effect." else echo "Docker is already installed." # Ensure user is in docker group - if ! groups $USER | grep -q '\bdocker\b'; then + if ! groups "$USER" | grep -q '\bdocker\b'; then echo "Adding user to docker group..." - sudo usermod -aG docker $USER + sudo usermod -aG docker "$USER" echo "You may need to log out and back in for group changes to take effect." fi fi diff --git a/macos/install_tools.sh b/macos/install_tools.sh index 06149a0..53279a6 100755 --- a/macos/install_tools.sh +++ b/macos/install_tools.sh @@ -25,6 +25,7 @@ else fi # Add Homebrew to PATH +# shellcheck disable=SC2016 echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" @@ -41,8 +42,10 @@ if ! java -version 2>&1 | grep -q "22"; then echo "Java 22 not found. Installing..." brew install openjdk@22 sudo ln -sfn /opt/homebrew/opt/openjdk@22/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-22.jdk + # shellcheck disable=SC2016 echo 'export PATH="/opt/homebrew/opt/openjdk@22/bin:$PATH"' >> ~/.zprofile echo 'export CPPFLAGS="-I/opt/homebrew/opt/openjdk@22/include"' >> ~/.zprofile + # shellcheck disable=SC1090 source ~/.zprofile else echo "Java 22 is already installed." @@ -60,7 +63,9 @@ fi if ! python3.10 --version &> /dev/null; then echo "Python 3.10 not found. Installing..." brew install python@3.10 + # shellcheck disable=SC2016 echo 'export PATH="/opt/homebrew/opt/python@3.10/bin:$PATH"' >> ~/.zprofile + # shellcheck disable=SC1090 source ~/.zprofile else echo "Python 3.10 is already installed."