As of 2017, this repository is in archival state. I refactored much of the code and am now using the scripts and utilities available publicly in this repository: https://github.com/natelandau/dotfiles.
This is the centralized repository of all the shell scripts which I use for a number of different purposes.
Important: I am a novice programmer and I bear no responsibility whatsoever if any of these scripts that I have written wipes your computer, destroys your data, crashes your car, or otherwise causes mayhem and destruction. USE AT YOUR OWN RISK.
- etc/ - Many of my scripts and shared functions call for configuration files. These configs are saved here.
- lib/ - Shared functions and libraries that are used throughout the scripts. Note all my scripts require these files and will break if they can not be found.
- setupScripts/ - Scripts that configure new Mac computers from scratch. These scripts perform such tasks as:
- Insalling Homebrew & associated packages
- Installing mac applications using Homebrew Cask
- Configuring OSX to my liking
- Syncing user preferences and files using Mackup
- Installing RVM and associated Gems
- Pushing a new SSH key to Github
- syncScripts/ - Scripts which use RSYNC and Unison to keep different directories and computers in sync.
- scriptTemplate.sh - A bash script boilerplate template.
This project implements the Semantic Versioning guidelines.
Releases will be numbered with the following format:
<major>.<minor>.<patch>
And constructed with the following guidelines:
- Breaking backward compatibility bumps the major (and resets the minor and patch)
- New additions without breaking backward compatibility bumps the minor (and resets the patch)
- Bug fixes and misc changes bumps the patch
Here's more information on semantic versioning.
The scripts herein were created by me over many years without ever having the intention to make them public. As a novice programmer, I have Googled, GitHubbed, and StackExchanged a path to solve my own scripting needs. Quite often I would lift a function whole-cloth from a GitHub repo and not keep track of it's original location. I have done my best within the scripts to recreate my footsteps and give credit to the original creators of the code when possible. Unfortunately, I fear that I missed as many as I found. My goal of making these scripts public is not to take credit for the wonderful code written by others. If you recognize or wrote something here that I didn't credit, please let me know.
This is a bash script boilerplate template that I use to create all my scripts. It takes care of a number of items for you including:
- Sourcing associated libraries and functions
- Gracefully trapping exits
- Creating and cleaning up temporary directories
- Writing logs
- Checking for dependecies (i.e. - ffmpeg or rsync)
- Passing options from the command line
- Printing usage information when
-h
is passed
To use the bash boilerplate for your own script follow these steps.
- Make a copy of
scriptTemplate.sh
. - Ensure that the new script can find the utilities located in
lib/utils.sh
by updating the path of variableutilsLocation
near the top. - Ensure your script is executable (i.e. - run
chmod a+x scriptname
) - Add your script within the function titled
mainScript