pjungermann / mac-setup Goto Github PK
View Code? Open in Web Editor NEWautomated setup of a Mac with basic software
License: MIT License
automated setup of a Mac with basic software
License: MIT License
Add a test using shellcheck to verify shell scripts.
brew casks with version "latest" are included when checking for outdated ones with option --greedy
, but whether they really need to be updated or not is not clear.
In order to prevent it from being reinstalled at every run, there needs to be a source of information to figure out whether there was a change. Whether this is possible or not, it still unclear though.
If there is no way to figure this out, maybe an option to not reinstall those might make sense.
Example brew casks: dropbox, spotify
prevent "error" output like
Stop! groovy 2.5.8 is already installed.
by checking whether it was already installed (conditionally try to install SDKs using SDKMan) or hide it
tfswitch allows to support and use multiple terraform versions at the same time and identified the necessary version for run folder using the version constraints in versions.tf
. Necessary terraform versions get installed by it on-the-fly.
Optional: It may make sense to preinstall the latest version or allow to choose which one to install. (see also issue #9)
Add nvm as installed software. We may want to use it as installer/package manager, too (see issue #9), to allow preinstalling certain versions.
brew install zsh && brew link --overwrite zsh
the link step is necessary to fix a conflict
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/zsh
Target /usr/local/bin/zsh
already exists. You may want to remove it:
rm '/usr/local/bin/zsh'
To force the link and overwrite all conflicting files:
brew link --overwrite zsh
To list all files that would be deleted:
brew link --overwrite --dry-run zsh
Possible conflicting files are:
/usr/local/bin/zsh -> /bin/zsh
see the collection of available themes:
https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes
Allow users of this script to specify the software they like using an external file, e.g. a YAML file.
To consider:
Questions:
Hi! I saw that you're using tfswitch. It does not support Terragrunt and OpenTofu, so, I suggest you to switch to tool that can manage all of these tools together: https://github.com/tofuutils/tenv
Homebrew changed a their commands and got rid of the sub-command brew cask
in favor of an argument --cask
(or --casks
). The opposite is called --formula
or --formulae
.
Is there a way to install tools via the toolbox from the CLI? Installing IntelliJ IDEA via Homebrew seems not the best when using the Toolbox.
Can we support browser extensions, too?
E.g.,
https://www.jetbrains.com/toolbox-app/
Integrate with GitHub, GitLab, or Bitbucket
Install the extension for Google Chrome or Firefox and you will be able to clone and open your GitHub, GitLab, or Bitbucket repositories right from your browser.
Add rvm as installed software. We may want to use it as installer/package manager, too (see issue #9), to allow preinstalling certain versions.
Skype for Business got deprecated and replaced by Microsoft Teams
Add shellcheck (brew) to the set of installed software.
use
upgrade_oh_my_zsh
for the upgrade in case it is already installed
ASDF:
https://asdf-vm.com/
https://github.com/asdf-vm/asdf
Manage multiple runtime versions with a single CLI tool, extendable via plugins
Allows to install and manage multiple version of a supported software similar to "sdk" (SDKMan!), nvm, rvm, rbenv, pyenv, etc.
Support for additional software can be added using plugins.
Officially listed plugins: https://asdf-vm.com/#/plugins-all?id=plugin-list
When supporting this, supporting plugins seems necessary as well.
(https://asdf-vm.com/#/core-manage-plugins?id=add)
Versions can be stored at .tool-versions
incl. multiple versions to support fallbacks. E.g., you can include and commit such a file for any of your projects. Changing into a directory with such a file will automatically use the defined versions. The global defaults are persisted in such a file at the $HOME
of the user.
add yarn to installed packages. Requires npm/node to be installed. See also issue #12
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.