build(task-runner): add self-documented task runner (#486)

* feat(task-runner): add maskfile.md

`mask` can also act as self-documented task runner
https://github.com/jakedeichert/mask

TODO: add demo.gif on opening this PR

* fix(task-runner): error when basename != dirname

with assumption it only happen on examples/rust

* chore(task-runner): add .gif from pr #486

* fix(task-runner): point $TAURI_* to fixture/*
This commit is contained in:
Fahmi Akbar Wildana 2020-04-12 20:57:52 +07:00 committed by GitHub
parent cb21b8fde9
commit c649ef47b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 82 additions and 1 deletions

3
.gitignore vendored
View File

@ -83,3 +83,6 @@ Cargo.lock
# doing this because of how our tests currently (naively) drop the tauri.conf.js in that folder
# todo: needs a proper fic
/cli/tauri.js/tauri.conf.js
# doing this because the task-runner (`mask prepare`) will clone gh:tauri-apps/examples
/examples

View File

@ -3,5 +3,8 @@ members = [
"tauri",
"tauri-api",
"tauri-updater",
"tauri-utils"
"tauri-utils",
]
exclude = [
"examples",
]

75
maskfile.md Normal file
View File

@ -0,0 +1,75 @@
# Shorthand Commands
## prepare
> Setup all stuffs needed for runing the examples
```sh
git clone --recursive git@github.com:tauri-apps/examples.git \
|| (cd examples && git pull origin master; cd ..) # always prepare up-to-date examples in case it's already available
export TAURI_DIST_DIR=$PWD/tauri/test/fixture/dist
export TAURI_DIR=$PWD/tauri/test/fixture/src-tauri
cargo build
cargo install --path cli/tauri-bundler --force
cargo install cargo-web # used by example rust/yew
cd cli/tauri.js
yarn && yarn build
```
## run
![tauri-mask-run-example](https://user-images.githubusercontent.com/4953069/75866011-00ed8600-5e37-11ea-9106-3cb104a05f80.gif)
### run example (example)
> Run specific example in dev mode
```sh
source .scripts/init_env.sh
shopt -s globstar
cd examples/**/$example 2>/dev/null \
|| cd examples/**/$example/$example # workaround for rust/yew/todomvc/todomvc
case "$PWD" in
*/node/*)
yarn && yarn tauri:source dev
;;
*/rust/*)
cargo web deploy
[ $example = `basename $(dirname $PWD)` ] && cd ..
yarn add tauri@link:../../../cli/tauri.js
yarn && yarn tauri dev
;;
*)
echo unknown project $(dirname $example)/$example
;;
esac
```
## list
### list examples
> List all available examples
```sh
find examples/*/*/* -maxdepth 0 -type d -not -path '*.git*' \
-exec sh -c 'echo $(basename $(dirname {}))/$(basename {})' \;
```
## clean
> Remove installed dependencies and reset examples in case something gone wrong
```sh
cargo uninstall tauri-bundler
cargo clean
shopt -s globstar
rm -r **/node_modules
cd examples
git checkout -- . # discard all unstaged changes
git clean -dfX # remove all untracked files & directories
```