commands:
bench: cargo bench "$@"
build: cargo build "$@"
check: garden -vv cmd garden test check/clippy check/fmt
check/clippy: cargo clippy --all "$@" -- -D warnings
check/fmt: cargo fmt --check "$@"
clean: cargo clean "$@"
commit: git commit "$@"
coverage: cargo kcov "$@"
diff: git diff "$@"
diffs: git diff --staged "$@"
doc: |
cargo doc --no-deps --package ${cargo_package} "$@"
cd doc
${mdbook} build --dest-dir book.new
rsync -r --delete --exclude=.git book.new/ book/
rm -rf book.new
fix: cargo clippy --all --fix "$@" -- -D warnings
fmt: cargo fmt "$@"
git: git "$@"
install: |
cargo build --release "$@"
install -m 775 -d "${DESTDIR}${bindir}"
install -m 755 target/release/garden "${DESTDIR}${bindir}"
install-doc: |
garden doc "$@"
mkdir -p "${DESTDIR}${docdir}"
rsync -r --exclude=.git doc/book/ "${DESTDIR}${docdir}/"
push: git push "$@"
setup: |
echo ':' git fetch pages
git fetch pages || (
echo
echo 'error: The "pages" remote is not available.'
echo
echo To fix this, run either of these two commands and try again.
echo
echo ' garden grow .'
echo
echo ' git remote add pages git@gitlab.com:garden-rs/garden-rs.github.io.git'
echo
echo 'The first command uses "garden" to configure the "pages" remote.'
echo 'The second command uses "git" to add the "pages" remote directly instead.'
return 1
)
garden grow doc/book
garden grow homebrew
stage: git add --update "$@"
stat: git status --short "$@"
status: git status "$@"
test: cargo test "$@"
update: cargo update "$@"
watch: cargo watch --shell "garden build && garden check && garden test"
variables:
cargo_package: garden-tools
DESTDIR: ""
prefix: ~/.cargo
bindir: ${prefix}/bin
docdir: ${prefix}/share/doc/garden
mdbook: mdbook
groups:
garden: garden
doc: doc/book
brew: homebrew
all:
- garden
- doc/book
- homebrew
trees:
garden:
path: ${GARDEN_CONFIG_DIR}
url: "git@gitlab.com:garden-rs/garden.git"
remotes:
garden: "git@gitlab.com:garden-rs/garden.git"
davvid: "git@gitlab.com:davvid/garden.git"
github: "git@github.com:davvid/garden.git"
jtietema: "https://github.com/jtietema/garden.git"
slackline: "https://github.com/slackline/garden.git"
pages: "git@gitlab.com:garden-rs/garden-rs.gitlab.io.git"
gitconfig:
remote.origin.pushurl:
- "git@gitlab.com:garden-rs/garden.git"
- "git@github.com:davvid/garden.git"
branch.pages.remote: pages
remote.pages.pushurl:
- "git@gitlab.com:garden-rs/garden-rs.gitlab.io.git"
- "git@github.com:davvid/garden.git"
doc/book:
worktree: garden
branch: pages
branches:
pages: pages/pages
homebrew: "git@gitlab.com:garden-rs/homebrew-garden.git"