This commit is contained in:
Brian Zalewski 2023-11-27 21:13:11 +00:00
parent a3fd84ef5b
commit 8a53a33c3f
6 changed files with 100 additions and 47 deletions

View file

@ -3,6 +3,13 @@ Create issue about setting up completions - https://github.com/rsteube/lazycompl
Use minimum permissions / IAM for https://iosexample.com/a-command-line-tool-to-download-and-install-apples-xcode/ Use minimum permissions / IAM for https://iosexample.com/a-command-line-tool-to-download-and-install-apples-xcode/
https://github.com/tiiiecherle/osx_install_config/blob/master/03_homebrew_casks_and_mas/3b_homebrew_casks_and_mas_install/6_mas_appstore.sh https://github.com/tiiiecherle/osx_install_config/blob/master/03_homebrew_casks_and_mas/3b_homebrew_casks_and_mas_install/6_mas_appstore.sh
virtualbox blocked by C
adobe-creative-cloud curl: (18) HTTP/2 stream 1 was reset
* Wazuh requires booting into recovery, running csrutil disable, installing agent normally, and then re-enabling it again in recovery mode
* NGINX /opt/homebrew/etc/nginx/nginx.conf, on port 8080 so no sudo required, nginx will load all files in /opt/homebrew/etc/nginx/servers/, brew services might require sudo if port 443 is used, Docroot /opt/homebrew/var/www
* Full disk access to Terminal required for Parallels
# TODOs # TODOs
This page outlines various projects and tasks that we are currently working on. Creating a GitHub issue for each of these items would be overkill. This page outlines various projects and tasks that we are currently working on. Creating a GitHub issue for each of these items would be overkill.

View file

@ -821,6 +821,7 @@ softwareGroups:
- ios-deploy - ios-deploy
- ios-sim - ios-sim
- java - java
- jenv
- libimobiledevice - libimobiledevice
- license - license
- lightproxy - lightproxy
@ -1484,8 +1485,6 @@ softwareGroups:
note: Deprecated in favor of using ASDF. note: Deprecated in favor of using ASDF.
- pkg: hyper - pkg: hyper
note: Deprecated in favor of Tabby for a full-featured terminal. note: Deprecated in favor of Tabby for a full-featured terminal.
- pkg: jenv
note: Deprecated in favor of using ASDF or SDKMan
- pkg: kitty - pkg: kitty
note: Deprecated in favor of using alternative terminals such as iTerm2, Tabby, and bundled Linux terminals. note: Deprecated in favor of using alternative terminals such as iTerm2, Tabby, and bundled Linux terminals.
- pkg: lepton - pkg: lepton

View file

@ -106,6 +106,20 @@ if [ "$BASH_SUPPORT" = 'true' ] && [ -n "$BASH" ]; then
### Cod ### Cod
! command -v cod > /dev/null || source <(cod init $$ bash) ! command -v cod > /dev/null || source <(cod init $$ bash)
### Conda
if command -v conda > /dev/null && [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin/conda" ]; then
__conda_setup="$("${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin/conda" "shell.zsh" "hook" 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/etc/profile.d/conda.sh" ]; then
. "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/etc/profile.d/conda.sh"
else
export PATH="${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin:$PATH"
fi
fi
fi
### Google Cloud SDK ### Google Cloud SDK
[ ! -f "${HOMEBREW_PREFIX}/share/google-cloud-sdk/path.bash.inc" ] || source "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.bash.inc" [ ! -f "${HOMEBREW_PREFIX}/share/google-cloud-sdk/path.bash.inc" ] || source "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.bash.inc"

View file

@ -1815,42 +1815,46 @@ async function linkBin(installOrdersBinLink) {
for (const binLink of installOrdersBinLink) { for (const binLink of installOrdersBinLink) {
const pkg = softwarePackages[binLink.package][binLink.preference] const pkg = softwarePackages[binLink.package][binLink.preference]
if (typeof pkg === 'string') { if (typeof pkg === 'string') {
if (!which.sync(binLink.bin, { nothrow: true })) { if (binLink.bin !== false) {
if (binLink.preference === 'flatpak' && flatpak) { if (!which.sync(binLink.bin, { nothrow: true })) {
try { if (binLink.preference === 'flatpak' && flatpak) {
runCommand( try {
`Adding bin link for ${pkg} (${binLink.bin})`,
`bash -c 'test -d ${flatpakDir}/app/${pkg} && mkdir -p "${process.env.HOME}/.local/bin/flatpak" && echo "flatpak run ${pkg} \\\$*" > "${process.env.HOME}/.local/bin/flatpak/${binLink.bin}" && chmod +x "${process.env.HOME}/.local/bin/flatpak/${binLink.bin}"'`
)
log('success', 'Bin', `Linked ~/.local/bin/flatpak/${binLink.bin} to the ${pkg} Flatpak`)
} catch (e) {
log('warn', 'Bin', `Expected flatpak directory not available - ${flatpakDir}/app/${pkg}`)
}
} else if (binLink.preference === 'cask') {
try {
const caskWhen = softwarePackages[binLink.package]['_when:cask'].replace(/blue/g, "red")
const appName = caskWhen.replace(/ && ! test -d .*/, '').replace(/! test -d "\/Applications\//, '').replace(/! test -d \/Applications\//, '').replace('"', '')
log('info', 'Bin', `Checking for existence of ${appName} application in /Applications and ~/Applications`)
if (fileExists(`/Applications/${appName}`)) {
runCommand( runCommand(
`Adding shortcut bin link for ${binLink.package}`, `Adding bin link for ${pkg} (${binLink.bin})`,
`bash -c 'mkdir -p "${process.env.HOME}/.local/bin/cask" && echo "open \"${caskDir}\" \\\$*" > "${process.env.HOME}/.local/bin/cask/${binLink.bin}" && chmod +x "${process.env.HOME}/.local/bin/cask/${binLink.bin}"'` `bash -c 'test -d ${flatpakDir}/app/${pkg} && mkdir -p "${process.env.HOME}/.local/bin/flatpak" && echo "flatpak run ${pkg} \\\$*" > "${process.env.HOME}/.local/bin/flatpak/${binLink.bin}" && chmod +x "${process.env.HOME}/.local/bin/flatpak/${binLink.bin}"'`
) )
} else if(fileExists(`${process.env.HOME}/Applications/${appName}`)) { log('success', 'Bin', `Linked ~/.local/bin/flatpak/${binLink.bin} to the ${pkg} Flatpak`)
runCommand( } catch (e) {
`Adding shortcut bin link for ${binLink.package}`, log('warn', 'Bin', `Expected flatpak directory not available - ${flatpakDir}/app/${pkg}`)
`bash -c 'mkdir -p "${process.env.HOME}/.local/bin/cask" && echo "open \"${process.env.HOME}/Applications/${appName}\" \\\$*" > "${process.env.HOME}/.local/bin/cask/${binLink.bin}" && chmod +x "${process.env.HOME}/.local/bin/cask/${binLink.bin}"'` }
) } else if (binLink.preference === 'cask') {
} else { try {
log('warn', 'Bin', `Expected Homebrew cask directory not found - ${pkg}`) const caskWhen = softwarePackages[binLink.package]['_when:cask'].replace(/blue/g, "red")
const appName = caskWhen.replace(/ && ! test -d .*/, '').replace(/! test -d "\/Applications\//, '').replace(/! test -d \/Applications\//, '').replace('"', '')
log('info', 'Bin', `Checking for existence of ${appName} application in /Applications and ~/Applications`)
if (fileExists(`/Applications/${appName}`)) {
runCommand(
`Adding shortcut bin link for ${binLink.package}`,
`bash -c 'mkdir -p "${process.env.HOME}/.local/bin/cask" && echo "open \"/Applications/${appName}\" \\\$*" > "${process.env.HOME}/.local/bin/cask/${binLink.bin}" && chmod +x "${process.env.HOME}/.local/bin/cask/${binLink.bin}"'`
)
} else if(fileExists(`${process.env.HOME}/Applications/${appName}`)) {
runCommand(
`Adding shortcut bin link for ${binLink.package}`,
`bash -c 'mkdir -p "${process.env.HOME}/.local/bin/cask" && echo "open \"${process.env.HOME}/Applications/${appName}\" \\\$*" > "${process.env.HOME}/.local/bin/cask/${binLink.bin}" && chmod +x "${process.env.HOME}/.local/bin/cask/${binLink.bin}"'`
)
} else {
log('warn', 'Bin', `Expected Homebrew cask directory not found - ${pkg}`)
}
} catch (e) {
console.log(e)
log('warn', 'Bin', `Error creating bin shortcut link for ${pkg}`)
} }
} catch (e) {
console.log(e)
log('warn', 'Bin', `Error creating bin shortcut link for ${pkg}`)
} }
} else {
log('info', 'Bin', `Link already exists for ${binLink.package}`)
} }
} else { } else {
log('info', 'Bin', `Link already exists for ${binLink.package}`) log('info', 'Bin', `Skipping ${binLink.package} because the _bin is equal to false`)
} }
} else { } else {
log('info', 'Bin', `Skipping ${binLink.package} because there was more than one _bin value`) log('info', 'Bin', `Skipping ${binLink.package} because there was more than one _bin value`)

View file

@ -409,6 +409,20 @@ fi
### Cod ### Cod
! command -v cod > /dev/null || source <(cod init $$ zsh) ! command -v cod > /dev/null || source <(cod init $$ zsh)
### Conda
if command -v conda > /dev/null && [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin/conda" ]; then
__conda_setup="$("${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin/conda" "shell.zsh" "hook" 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/etc/profile.d/conda.sh" ]; then
. "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/etc/profile.d/conda.sh"
else
export PATH="${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin:$PATH"
fi
fi
fi
### direnv ### direnv
! command -v direnv > /dev/null || eval "$(direnv hook zsh)" ! command -v direnv > /dev/null || eval "$(direnv hook zsh)"

View file

@ -519,7 +519,18 @@ softwarePackages:
brew: ansifilter brew: ansifilter
choco: ansifilter choco: ansifilter
port: ansifilter port: ansifilter
android-commandlinetools:
_deps:
- java
_bin: false
_name: Android Studio Command Line Tools
_github: false
_when:cask: '! test -d "${HOMEBREW_PREFIX:-/opt/homebrew}/share/android-commandlinetools"'
cask: android-commandlinetools
android-studio: android-studio:
_deps:
- android-commandlinetools
- java
_bin: android-studio _bin: android-studio
_desc: >- _desc: >-
[Android Studio](https://developer.android.com/studio) is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. This role installs Android Studio on nearly any operating system and also ensures a configurable list of command-line tools and SDKs are installed and seamlessly integrated with the system (i.e. the role adds the appropriate items to the `PATH` environment variable). [Android Studio](https://developer.android.com/studio) is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. This role installs Android Studio on nearly any operating system and also ensures a configurable list of command-line tools and SDKs are installed and seamlessly integrated with the system (i.e. the role adds the appropriate items to the `PATH` environment variable).
@ -528,9 +539,7 @@ softwarePackages:
_home: https://developer.android.com/studio _home: https://developer.android.com/studio
_name: Android Studio _name: Android Studio
_when:cask: '! test -d "/Applications/Android Studio.app" && ! test -d "$HOME/Applications/Android Studio.app"' _when:cask: '! test -d "/Applications/Android Studio.app" && ! test -d "$HOME/Applications/Android Studio.app"'
cask: cask: android-studio
- android-studio
- android-commandlinetools
choco: androidstudio choco: androidstudio
flatpak: com.google.AndroidStudio flatpak: com.google.AndroidStudio
snap: android-studio snap: android-studio
@ -858,7 +867,7 @@ softwarePackages:
- argocd - argocd
- argocd-cli - argocd-cli
blackhole: blackhole:
_bin: blackhole _bin: false
_docs: https://github.com/ExistentialAudio/BlackHole#user-guides _docs: https://github.com/ExistentialAudio/BlackHole#user-guides
_home: https://github.com/ExistentialAudio/BlackHole _home: https://github.com/ExistentialAudio/BlackHole
_github: https://github.com/ExistentialAudio/BlackHole _github: https://github.com/ExistentialAudio/BlackHole
@ -979,7 +988,7 @@ softwarePackages:
devtoys: devtoys:
_bin: devtoys _bin: devtoys
_github: https://github.com/ObuchiYuki/DevToysMac _github: https://github.com/ObuchiYuki/DevToysMac
_when:cask: echo '! test -d /Applications/DevToys.app && ! test -d $HOME/Applications/DevToys.app' | bash _when:cask: '! test -d /Applications/DevToys.app && ! test -d $HOME/Applications/DevToys.app'
cask: devtoys cask: devtoys
devtoys-windows: devtoys-windows:
_bin: devtoys _bin: devtoys
@ -997,7 +1006,7 @@ softwarePackages:
_bin: codeedit _bin: codeedit
_github: https://github.com/CodeEditApp/CodeEdit _github: https://github.com/CodeEditApp/CodeEdit
_name: CodeEdit _name: CodeEdit
_when:cask: '! test -d /Applications/CodeEdit.app && ! test -d $HOME/Applications/CodeEdit.app' _when:cask: '! test -d "/Applications/CodeEdit.app" && ! test -d "$HOME/Applications/CodeEdit.app"'
cask: codeedit cask: codeedit
barrier: barrier:
_bin: barrier _bin: barrier
@ -1158,7 +1167,7 @@ softwarePackages:
_bin: logi-options-plus _bin: logi-options-plus
_github: false _github: false
_name: Logi Options+ _name: Logi Options+
_when:cask: '! test -d "/Applications/Logi Options+.app" && ! test -d "$HOME/Applications/Logi Options+.app"' _when:cask: '! test -d "/Applications/logioptionsplus.app" && ! test -d "$HOME/Applications/logioptionsplus.app"'
choco: logioptionsplus choco: logioptionsplus
cask: logi-options-plus cask: logi-options-plus
exe: https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.exe exe: https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.exe
@ -1509,19 +1518,19 @@ softwarePackages:
_bin: amethyst _bin: amethyst
_github: https://github.com/ianyh/Amethyst _github: https://github.com/ianyh/Amethyst
_name: Amethyst _name: Amethyst
_when:cask: echo '! test -d /Applications/Amethyst.app && ! test -d $HOME/Applications/Amethyst.app' | bash _when:cask: '! test -d /Applications/Amethyst.app && ! test -d $HOME/Applications/Amethyst.app'
cask: amethyst cask: amethyst
alt-tab: alt-tab:
_bin: alt-tab _bin: alt-tab
_github: https://github.com/lwouis/alt-tab-macos _github: https://github.com/lwouis/alt-tab-macos
_name: Alt+Tab for macOS that works like alt+tab on Windows _name: Alt+Tab for macOS that works like alt+tab on Windows
_when:cask: echo '! test -d /Applications/AltTab.app && ! test -d $HOME/Applications/AltTab.app' | bash _when:cask: '! test -d "/Applications/AltTab.app" && ! test -d "$HOME/Applications/AltTab.app"'
cask: alt-tab cask: alt-tab
fiscript: fiscript:
_bin: fiscript _bin: fiscript
_github: https://github.com/Mortennn/FiScript _github: https://github.com/Mortennn/FiScript
_name: FiScript _name: FiScript
_when:cask: echo '! test -d /Applications/FiScript.app && ! test -d $HOME/Applications/FiScript.app' | bash _when:cask: '! test -d /Applications/FiScript.app && ! test -d $HOME/Applications/FiScript.app'
cask: fiscript cask: fiscript
opencommit: opencommit:
_bin: opencommit _bin: opencommit
@ -1660,7 +1669,7 @@ softwarePackages:
_bin: lightproxy _bin: lightproxy
_github: https://github.com/alibaba/lightproxy _github: https://github.com/alibaba/lightproxy
_name: LightProxy _name: LightProxy
_when:cask: echo '! test -d /Applications/LightProxy.app && ! test -d $HOME/Applications/LightProxy.app' | bash _when:cask: '! test -d /Applications/LightProxy.app && ! test -d $HOME/Applications/LightProxy.app'
cask: lightproxy cask: lightproxy
carbon-now: carbon-now:
_bin: carbon-now _bin: carbon-now
@ -3449,6 +3458,7 @@ softwarePackages:
_github: https://github.com/chrissimpkins/Crunch _github: https://github.com/chrissimpkins/Crunch
_home: https://github.com/chrissimpkins/Crunch _home: https://github.com/chrissimpkins/Crunch
_name: Crunch _name: Crunch
_when:cask: '! test -d /Applications/Crunch.app && ! test -d $HOME/Applications/Crunch.app'
cask: crunch cask: crunch
script: cd /tmp && rm -rf Crunch && git clone https://github.com/chrissimpkins/Crunch.git && make build-dependencies && make install-executable && cd /tmp && rm -rf Crunch && rm -rf ~/zopfli && rm -rf ~/pngquant && echo "TODO WARNING - The ~/zopfli and ~/pngquant directories were deleted and may be required (but were removed due to HOME directory pollution)" script: cd /tmp && rm -rf Crunch && git clone https://github.com/chrissimpkins/Crunch.git && make build-dependencies && make install-executable && cd /tmp && rm -rf Crunch && rm -rf ~/zopfli && rm -rf ~/pngquant && echo "TODO WARNING - The ~/zopfli and ~/pngquant directories were deleted and may be required (but were removed due to HOME directory pollution)"
eul: eul:
@ -3512,7 +3522,7 @@ softwarePackages:
_github: https://github.com/nitroshare/nitroshare-desktop _github: https://github.com/nitroshare/nitroshare-desktop
_home: https://nitroshare.net/ _home: https://nitroshare.net/
_name: NitroShare _name: NitroShare
_when:cask: '! test -d /Applications/nitroshare.app && ! test -d $HOME/Applications/nitroshare.app' _when:cask: '! test -d "/Applications/nitroshare.app" && ! test -d "$HOME/Applications/nitroshare.app"'
apt: nitroshare apt: nitroshare
cask: nitroshare cask: nitroshare
choco: nitroshare choco: nitroshare
@ -4938,15 +4948,17 @@ softwarePackages:
_name: Ansibler _name: Ansibler
pipx: ansibler pipx: ansibler
java: java:
_bin: java _bin: false
_desc: '[Java](https://www.java.com/en/) is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.' _desc: '[Java](https://www.java.com/en/) is a class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.'
_docs: https://docs.oracle.com/en/cloud/paas/nosql-cloud/index.html _docs: https://docs.oracle.com/en/cloud/paas/nosql-cloud/index.html
_github: https://github.com/oracle/nosql-java-sdk _github: https://github.com/oracle/nosql-java-sdk
_home: https://www.java.com/en/ _home: https://www.java.com/en/
_name: Java _name: Java
_when:cask: '! java --version | grep Temurin'
ansible: professormanhattan.java ansible: professormanhattan.java
apt: openjdk-11-jdk apt: openjdk-11-jdk
brew: openjdk brew: openjdk
cask: temurin
choco: jdk11 choco: jdk11
dnf: java-11-openjdk-devel.x86_64 dnf: java-11-openjdk-devel.x86_64
pacman: jdk-openjdk pacman: jdk-openjdk
@ -4960,6 +4972,7 @@ softwarePackages:
_home: https://www.jenv.be/ _home: https://www.jenv.be/
_name: jenv _name: jenv
ansible: professormanhattan.jenv ansible: professormanhattan.jenv
brew: jenv
atuin: atuin:
_bin: atuin _bin: atuin
_github: https://github.com/ellie/atuin _github: https://github.com/ellie/atuin
@ -5707,6 +5720,7 @@ softwarePackages:
_github: https://github.com/marktext/marktext _github: https://github.com/marktext/marktext
_home: null _home: null
_name: MarkText _name: MarkText
_post:cask: if [ -d /Applications/MarkText.app ]; then xattr -cr /Applications/MarkText.app; elif [ -d "$HOME/Applications/MarkText.app" ]; then xattr -cr "$HOME/Applications/MarkText.app"; fi
_when:cask: '! test -d /Applications/MarkText.app && ! test -d $HOME/Applications/MarkText.app' _when:cask: '! test -d /Applications/MarkText.app && ! test -d $HOME/Applications/MarkText.app'
cask: mark-text cask: mark-text
choco: marktext choco: marktext
@ -7064,6 +7078,7 @@ softwarePackages:
_github: null _github: null
_home: https://www.parallels.com/ _home: https://www.parallels.com/
_name: Parallels _name: Parallels
_notes: On macOS, full disk access is required for Terminal.
_when: '! test -d "/Applications/Parallels Desktop.app" && ! test -d "$HOME/Applications/Parallels Desktop.app"' _when: '! test -d "/Applications/Parallels Desktop.app" && ! test -d "$HOME/Applications/Parallels Desktop.app"'
_notes: For Homebrew Cask, this requires the terminal to have full disk access _notes: For Homebrew Cask, this requires the terminal to have full disk access
ansible:darwin: professormanhattan.parallels ansible:darwin: professormanhattan.parallels
@ -9911,7 +9926,7 @@ softwarePackages:
pacman: vagrant pacman: vagrant
scoop: vagrant scoop: vagrant
vagrant-vmware-utility: vagrant-vmware-utility:
_bin: vagrant-vmware-utility _bin: false
_desc: null _desc: null
_docs: null _docs: null
_github: null _github: null
@ -10906,7 +10921,7 @@ softwarePackages:
_github: https://github.com/Yubico/yubikey-manager-qt _github: https://github.com/Yubico/yubikey-manager-qt
_home: https://developers.yubico.com/yubikey-manager-qt/ _home: https://developers.yubico.com/yubikey-manager-qt/
_name: YubiKey Manager _name: YubiKey Manager
_when:cask: echo '! test -d "/Applications/YubiKey Manager.app" && ! test -d "$HOME/Applications/YubiKey Manager.app"' | bash _when:cask: '! test -d "/Applications/YubiKey Manager.app" && ! test -d "$HOME/Applications/YubiKey Manager.app"'
appimage: Yubico/yubikey-manager-qt appimage: Yubico/yubikey-manager-qt
cask: yubico-yubikey-manager cask: yubico-yubikey-manager
choco: yubikey-manager choco: yubikey-manager