A helper script to get you from a vanilla machine to a minimal Lando-based dev environment in less than 12 par-steps. Generally this includes:
- git
- curl
- node
- yarn
- docker
- lando
- ssh keys
- vim or atom or none
NOTE: Hyperdrive is only currently available for macOS 10.11+ and recent-ish Debian flavored linux distributions. If you are using something else and interested in adding support please open a feature request
The easiest way to kick in things into lightspeed is to run the latest release script directly from the internet
curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.5.4/hyperdrive > /tmp/hyperdrive \
&& chmod +x /tmp/hyperdrive \
&& /tmp/hyperdrive
Or with options
curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.5.4/hyperdrive > /tmp/hyperdrive \
&& chmod +x /tmp/hyperdrive \
&& /tmp/hyperdrive --vim -y
You can also download the script to your $PATH
and then pass in options to make it non-interactive
curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.5.4/hyperdrive > /usr/local/bin/hyperdrive \
&& chmod +x /usr/local/bin/hyperdrive
hyperdrive -h
_ _ _ _
| | | | | | (_)
| |__| |_ _ _ __ ___ _ __ __| |_ __ ___ _____
| __ | | | | '_ \ / _ \ '__/ _` | '__| \ \ / / _ \
| | | | |_| | |_) | __/ | | (_| | | | |\ V / __/
|_| |_|\__, | .__/ \___|_| \__,_|_| |_| \_/ \___|
__/ | |
|___/|_|
Usage: ./hyperdrive.sh [-yh] [--name name] [--email email] [--vim]
Options:
-h, --help Show this help dialog
-v, --version Show the version
-y, --yes Auto confirm all yes/no prompts
--name My name eg "Jean Luc Picard"
--email My email eg [email protected]
--vim Install vim with hyperdrive conf
Examples:
# Run bootscript interactively
./hyperdrive.sh
# Show this usage dialog
./hyperdrive.sh -h
# Run non-interactively with optional vim installation
./hyperdrive.sh -y --name "Lando" --email [email protected] --vim
The above CLI options are also available as environment variables. Take care to export
the variables. You can ensure that they are set correctly by running env
.
export HYPERDRIVE_HELP=false
export HYPERDRIVE_YES=false
export HYPERDRIVE_NAME=James T. Kirk
export [email protected]
export HYPERDRIVE_VIM=false
You can optionally install our hyperdrive
version of the vim
text editor by passing the --vim
option into hyperdrive
.
hyperdrive --vim
Hyperdrive Vim is built on top of and extends Janus which means it uses Pathogen for plugin management and sets ,
as the Leader Key. If you are unfamiliar with vim
or janus
we highly recommend you review this before proceeding further.
You can further extend it with your own ~/.hyperdrive.local
folder which minimally should take this structure:
.
├── vim Pathogen VIM plugins as git submodules
├── vimrc.after Runs after the custom Janus vimrc.after
└── vimrc.before Runs after the custom Janus vimrc.before
Ideally this lives in a git
repository forked from hyperdrive
itself. This model allows you to easily maintain your own customizations and contribute to hyperdrive
simultaneously.
git clone https://github.com/pirog/hyperdrive ~/.hyperdrive.local
You can also warp to the frontier and use the latest dev version of the script.
# Get the project
git clone https://github.com/lando/hyperdrive.git
# Run the source
./hyperdrive.sh
# Build the compiled script that lives on the interwebs
./build.sh
./bin/hyperdrive
# Release a new version of hyperdrive
#
# NOTE: This will update the readme, make a commit, make a tag and push
# back to the repo
#
# Pass in the version you want to bump to with an optional tag annotation
./release.sh v4.4.4-alpha.12931 "Wretched hive of scum and villiany"
The project structure to hyperdrive makes it easy to work with and learn.
.
├── CONTRIBUTING.md Contributing docs
├── LICENSE License
├── README.md This README
├── bin The location of ./build.sh artifacts eg hyperdrive
├── checks A standardized set of dependency check functions
├── installers Scripts to install things
├── lib Helper functions loaded first and used everywhere else
├── vim Git submodules for our VIM ~/.janus plugins (Pathogen)
├── build.sh Build script
├── release.sh Release script
├── hyperdrive.sh Main entrypoint logic
├── vimrc.after Custom Janus vimrc.after
└── vimrc.before Custom Janus vimrc.before