Skip to content

Commit

Permalink
#25: Update README to reflect new purpose
Browse files Browse the repository at this point in the history
  • Loading branch information
pirog committed Aug 6, 2021
1 parent bfb632e commit 0b11ca4
Showing 1 changed file with 10 additions and 149 deletions.
159 changes: 10 additions & 149 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,168 +1,29 @@
Hyperdrive
==========

![Hyperdrive](https://raw.githubusercontent.com/lando/hyperdrive/master/hyperdrive.gif)
**As of `0.7.0-alpha.1` Hyperdrive has a new purpose: a first-class package and dependency manager for Lando. That said, it is still in early development and not yet suitable for production, or really any, usage. Until it's reasonably useful and stable we recommend you continue to use the [0.6.1 Release](https://github.com/lando/hyperdrive/releases/tag/v0.6.1) and its associated [documentation](https://github.com/lando/hyperdrive/tree/v0.6.1).**

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:
Hyperdrive is the `npm` of Lando. Its purpose is to consolidate dependency and plugin management logic that exists across the Lando ecosystem into a single library that can be invoked directly through `require` or via the `hyperdrive` cli. With Hyperdrive you should be able to:

1. **git**
2. **curl**
3. **node**
4. **yarn**
5. **docker**
6. **lando**
7. **ssh keys**
9. **vim or atom or [none](https://www.youtube.com/watch?v=UsjoFZEwAyI)**

**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](https://github.com/lando/hyperdrive/issues/new?template=feature_request.md)
* Install, remove and correctly configure Lando dependencies like Docker
* Install and remove Lando components like the Lando Desktop, Lando CLI and Lando Server
* Install and remove core, contrib and third-part Lando plugins

Installation
------------

The easiest way to kick in things into lightspeed is to run the latest release script directly from the internet

```bash
curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.6.1/hyperdrive > /tmp/hyperdrive \
&& chmod +x /tmp/hyperdrive \
&& /tmp/hyperdrive
```

Or with options

```bash
curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.6.1/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

```bash
curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.6.1/hyperdrive > /usr/local/bin/hyperdrive \
&& chmod +x /usr/local/bin/hyperdrive
```
```bash
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 kirk@starfleet.mil
--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 admin@thisfacility.com --vim
```
Environment Variables
---------------------
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`.
```bash
export HYPERDRIVE_HELP=false
export HYPERDRIVE_YES=false
export HYPERDRIVE_NAME=James T. Kirk
export HYPERDRIVE_EMAIL=kirk@enterprise.mil
export HYPERDRIVE_VIM=false
```
VIM
---
You can optionally install our `hyperdrive` version of the `vim` text editor by passing the `--vim` option into `hyperdrive`.
```bash
hyperdrive --vim
```
![Hyperdrive Vim](https://raw.githubusercontent.com/lando/hyperdrive/master/hypervim.png)
Hyperdrive Vim is built on top of and extends [Janus](https://github.com/carlhuda/janus) which means it uses [Pathogen](https://github.com/tpope/vim-pathogen) for plugin management and sets `,` as the Leader Key. If you are unfamiliar with `vim` or `janus` we highly recommend you review [this](https://github.com/carlhuda/janus#intro-to-vim) before proceeding further.
You can further extend it with your own `~/.hyperdrive.local` folder which _minimally_ should take this structure:
```bash
.
├── 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.
```bash
git clone https://github.com/pirog/hyperdrive ~/.hyperdrive.local
```
Usage
-----

Development
-----------

You can also warp to the frontier and use the latest dev version of the script.
```bash
# 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
Testing
-------

# 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"
```
Structure
Releasing
---------

The project structure to hyperdrive makes it easy to work with and learn.
```bash
.
├── 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
```
Other Resources
---------------

Expand Down

0 comments on commit 0b11ca4

Please # to comment.