gshell 1.0.1

gshell is a shell for people who live in the terminal. It pairs familiar Unix behavior with a tighter core, fast interaction, and an interface built to stay out of the way.
Documentation
SHELL := /bin/sh

CARGO ?= cargo
CRATE ?= gshell

.PHONY: help
help:
	@printf "\n"
	@printf "Targets:\n"
	@printf "  make check        - cargo check\n"
	@printf "  make test         - cargo test\n"
	@printf "  make fmt          - cargo fmt\n"
	@printf "  make fmt-check    - cargo fmt --check\n"
	@printf "  make clippy       - cargo clippy with warnings denied\n"
	@printf "  make lint         - fmt-check + clippy\n"
	@printf "  make validate     - check + test + lint\n"
	@printf "  make run          - cargo run\n"
	@printf "  make clean        - cargo clean\n"
	@printf "  make bench        - cargo bench\n"
	@printf "  make build-release - cargo build --release\n"
	@printf "  make validate-full - check + test + lint + release + bench\n"
	@printf "\n"

.PHONY: check
check:
	$(CARGO) check --all-targets --all-features

.PHONY: test
test:
	$(CARGO) test --all-targets --all-features

.PHONY: fmt
fmt:
	$(CARGO) fmt --all

.PHONY: fmt-check
fmt-check:
	$(CARGO) fmt --all --check

.PHONY: clippy
clippy:
	$(CARGO) clippy --all-targets --all-features -- -D warnings

.PHONY: lint
lint: fmt-check clippy

.PHONY: validate
validate: check test lint

.PHONY: run
run:
	$(CARGO) run --bin $(CRATE)

.PHONY: clean
clean:
	$(CARGO) clean

.PHONY: bench
bench:
	$(CARGO) bench

.PHONY: build-release
build-release:
	$(CARGO) build --release

.PHONY: validate-full
validate-full: check test lint build-release bench