Skip to main content

View / Edit on GitHub: scripts/test-macos.sh

macos-script.sh

Run a user-specified command inside a macOS GitHub runner.

Overview

This script runs inside a macOS GitHub Actions runner and executes a user-provided command.

Script Functions

printSystemInfo

Print macOS system information.

Output on stdout

  • System details.

runUserCommand

Run a user-specified command inside the macOS runner.

Exit codes

  • 0: If successful.
  • 1: If the command fails.

Output on stdout

  • Command output.

Source Code

#!/bin/bash
# @file macos-script.sh
# @brief Run a user-specified command inside a macOS GitHub runner.
# @description
# This script runs inside a macOS GitHub Actions runner and executes
# a user-provided command.
#
# @usage
# ./macos-script.sh "your-command-here"
#
# @requires
# - macOS GitHub runner
#
# @exitcode 0 If successful.
# @exitcode 1 If an error occurs.

set -e

# Redirect output to log file
LOG_FILE="macos-script.log"
exec > >(tee -i "$LOG_FILE") 2>&1

# ==============================================================================
# GLOBAL VARIABLES
# ==============================================================================
USER_COMMAND="$1"

# ==============================================================================
# @description Print macOS system information.
#
# @stdout System details.
# ==============================================================================
printSystemInfo() {
echo "### macOS System Information ###"
sw_vers
uname -a
sysctl -n machdep.cpu.brand_string
}

# ==============================================================================
# @description Run a user-specified command inside the macOS runner.
#
# @stdout Command output.
#
# @exitcode 0 If successful.
# @exitcode 1 If the command fails.
# ==============================================================================
runUserCommand() {
if [[ -z "$USER_COMMAND" ]]; then
echo "Error: No command provided."
exit 1
fi

echo "### Running User Command ###"
echo "Executing: $USER_COMMAND"
eval "$USER_COMMAND"
}

# ==============================================================================
# Main Execution
# ==============================================================================
main() {
printSystemInfo
runUserCommand
}

main