From d6578c5d4a5ef5971603023af0b24ffee08cbc25 Mon Sep 17 00:00:00 2001 From: yage Date: Tue, 4 Feb 2025 15:09:26 -0700 Subject: [PATCH] start macos compatibility --- setup/os-dependencies/macos.txt | 43 +++++++++++++++++++++++++++++++++ setup/os.zsh | 21 +++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 setup/os-dependencies/macos.txt diff --git a/setup/os-dependencies/macos.txt b/setup/os-dependencies/macos.txt new file mode 100644 index 0000000..2aa66f3 --- /dev/null +++ b/setup/os-dependencies/macos.txt @@ -0,0 +1,43 @@ +autoconf +automake +bat +binutils +bison +cmake +cowsay +feh +figlet +coreutils +flex +fzf +gcc +g++ +gettext +go +htop +openjdk +jq +libtool +lolcat +mono +ncurses +neofetch +node +npm +openssh +patch +pkg-config +python +pip3 +pylint +virtualenv +ripgrep +rust +sed +sudo +tmux +vim +yamllint +yq +zip +zsh diff --git a/setup/os.zsh b/setup/os.zsh index dffb532..7d3e911 100644 --- a/setup/os.zsh +++ b/setup/os.zsh @@ -18,6 +18,9 @@ OS__GET_OS() { [ ! ${OS_NAME} ] \ && OS_NAME=$(cat /etc/os-release 2>/dev/null | sed -n 's/^ID=//p') + uname -s | grep -q Darwin \ + && OS_NAME=macos + [ ! ${OS_NAME} ] \ && WARNING 'failed to detect operating system' \ && OS_NAME=$(echo -e "arch\ndebian\nother" | FZF 'select an operating system') \ @@ -43,6 +46,12 @@ OS__INSTALL_SOURCE_DEPENDENCIES() { ( fedora ) ;; ( debian ) ;; + + ( macos ) + command -v brew &>/dev/null \ + || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + ;; + ( * ) ;; esac @@ -59,8 +68,9 @@ OS__INSTALL_MANAGED_DEPENDENCIES() { STATUS 'checking os dependencies' case ${OS_NAME} in - ( arch | debian | fedora ) + ( arch | fedora | debian | macos ) ;; + ( * ) OS_NAME='generic' WARNING "no automated installer available for '${OS_NAME}'" @@ -128,6 +138,15 @@ INSTALL_MANAGED__fedora() { ; } +UPDATE_REPOSITORIES__macos() { brew update && brew upgrade; } +INSTALL_MANAGED__macos() { + STATUS "checking / installing '$1'" + yes | brew install $1 \ + && SUCCESS "'$1' installed" \ + || ERROR "failed to install ${TARGET}" \ + ; +} + UPDATE_REPOSITORIES__generic() { return 0; } INSTALL_MANAGED__generic() { command -v $1 >/dev/null 2>&1 \