GitHub - minamarkham/formation: ? macOS setup script for front-end development
source link: https://github.com/minamarkham/formation
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
? Formation
Formation is a shell script to set up a macOS laptop for design and development.
It can be run multiple times on the same machine safely. It installs, upgrades, or skips packages based on what is already installed on the machine.
Install
Download the script:
git clone [email protected]/minamarkham/formation.git && cd formation
Review the script (please don't run scripts you don't understand):
less slay
Slay:
sh slay 2>&1 | tee ~/slay.log
Just follow the prompts and you’ll be fine. ?
⚠️ Warning: I advise against running this script unless you understand what it’s doing to your computer.
I created this based on my own preferences; your mileage may vary.
Once the script is done, quit and relaunch Terminal.
It is highly recommended to run the script regularly to keep your computer up to date.
Your last Formation run will be saved to ~/slay.log
. To review it, run less ~/slay.log
.
That's it! ✨
What it sets up
The setup process will:
Basic tools:- XCode Command Line Tools for developer essentials.
- Bash-it, for a more powerful bash.
- Git for version control
- Homebrew for managing operating system libraries.
- NVM for managing and installing multiple versions of Node.js and npm
- Rbenv for managing versions of Ruby
- Yarn for managing JavaScript packages
- asciinema for recording terminal sessions
- Gulp the streaming build system
- Hotel, a simple process manager for developers
- Hub for interacting with the GitHub API
- hugo, an open-source static site generator
- ImageMagick to create, edit, compose, or convert bitmap images
- mas Mac App Store command line interface
- Tig text-mode interface for git
- Vagrant for development environments
Apps
Productivity- Airmail for a better mail client.
- Alfred for increased productivity and efficiency with macOS.
- Fantastical for a better calendar.
- Things for getting things done.
- Dash offline access to API documentation sets
- ForkLift FTP client
- Hyper for an alternative terminal.
- ImageOptim for image optimization.
- iTerm for a better terminal.
- Kaleidoscope for a better diff tool.
- Virtual Box powerful virtualization tool
- Visual Studio Code IDE
- Affinity Designer
- Affinity Photo
- Sip collect, organize & share your colors
- Sketch for design.
- Bear for writing and previewing markdown.
- Skype for free calls to friends and family.
- Slack where work happens.
- Ulysses for long-form writing.
- 1Password for password management.
- Dropbox for cloud file storage.
- Divvy for better window management.
- Dr Cleaner Pro Plus
- Encrypto for securing files.
- ExpressVPN for privacy.
- HyperDock
- Karabiner for keyboard mapping.
- Renamer for easy file renaming.
- Gifox for GIF making.
- Rocket for Slack-like emojis.
- Spotify for music.
- VLC for a better media player.
- Blisk for cross-device web development.
- Brave for web browsing without ads.
- Chrome for fast and free web browsing.
- Firefox for web browsing and testing.
- TorBrowser for super secret web browsing.
See .swag
for the full list of apps that will be installed. Adjust it to your personal taste.
It should take less than 20 minutes to install (depends on your machine).
? Just add ~/.hot-sauce
Your ~/.hot-sauce
is added at the end of the Formation script. Put your customizations there.
For example:
#!/usr/bin/env bash SETUP_ROOT=$HOME/.setup NERDFONTS_RELEASE=$(curl -L -s -H 'Accept: application/json' https://github.com/ryanoasis/nerd-fonts/releases/latest) NERDFONTS_VERSION=$(get_github_version $NERDFONTS_RELEASE) DIRECTORIES=( $HOME/Desktop/code $HOME/Desktop/design $HOME/Desktop/*dump $HOME/Desktop/GIFs $HOME/Desktop/projects $HOME/Desktop/screenshots ) NERDFONTS=( SpaceMono Hack AnonymousPro Inconsolata ) step "Making directories…" for dir in ${DIRECTORIES[@]}; do mkd $dir done step "Installing fonts…" for font in ${NERDFONTS[@]}; do if [ ! -d ~/Library/Fonts/$font ]; then printf "${indent} [↓] $font " wget -P ~/Library/Fonts https://github.com/ryanoasis/nerd-fonts/releases/download/$NERDFONTS_VERSION/$font.zip --quiet;unzip -q ~/Library/Fonts/$font -d ~/Library/Fonts/$font print_in_green "${bold}✓ done!${normal}\n" else print_muted "${indent}✓ $font already installed. Skipped." fi done
Write your customizations such that they can be run safely more than once.
See the slay
script for examples.
Formation functions such as step
and link
can be used in your ~/.hot-sauce
.
Known Issues
Cask does not recognize applications installed outside of Homebrew Cask – in the case that the script fails, you can either remove the application from the install list or uninstall the application causing the failure and try again.
Acknowledgements
Inspiration and code was taken from many sources, including:
- Mathias Bynens' dotfiles
- thoughtbot's laptop
? License
Formation is customized for my own needs. It is free software, and may be redistributed under the terms specified in the LICENSE file.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK