Skip to content

Commit

Permalink
Update README.md (#81)
Browse files Browse the repository at this point in the history
* Update README.md

* Update README.md

* Update appveyor.yml
  • Loading branch information
rdsubhas authored Apr 25, 2017
1 parent 4960a81 commit cd2f469
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ myke solves all these problems in a single tiny binary, to avoid reinventing the
## Features

* Define tasks in simple `.yml` files
* Tasks execute in a predictable environment irrespective of which folder they are invoked from
* Nice aggregation and discovery with tag-based grouping, suitable for few and many tasks, organizing into subfolders/submodules/repos/projects
* Robust environment handling - Can be defined as keys in the YML or as dotenv files, overridden by dotenv.local files, `PATH` is always prepended, shell always takes precedence
* Built-in templating using golang text/template and 50+ functions provided by [sprig](https://github.com/Masterminds/sprig)
Expand Down Expand Up @@ -54,20 +55,20 @@ Explore the self documenting `examples` folder.

## Task Execution Environment

* `cwd` is set to the YML file base folder
* `cwd/bin` is added to `PATH`
* tasks always run with `cwd` set to the folder where the task is defined
* `cwd/bin` is always added to `PATH`
* environment variables are loaded from:
* `env` property in yml
* dotenv files from `env_files`
* for every dotenv file, the corresponding dotenv `.local` file is also loaded
* for every dotenv file, the corresponding dotenv `.local` file is also loaded if present
* same is done for every mixin that the yml uses
* So, if you mixin `<some-other-folder>/myke.yml`, then that yml's `cwd/bin` is also added to the PATH, that yml's env/env_files/env_files.local are also loaded, and so on
* shell exported environment variables take precedence
* additional variables: `$MYKE_PROJECT`, `$MYKE_TASK`, `$MYKE_CWD`
* additional variables: `$MYKE_PROJECT`, `$MYKE_TASK`, `$MYKE_CWD` are always set
* `$myke` is set to full path of myke itself to easily nest myke calls (e.g. `$myke do_something` will become `myke.exe do_something` in windows)
* command is templated using golang text/template and sprig
* environment and task arguments are passed in as variables
* command is run using `sh -exc`
* command is run using `sh -exc` in Linux/OSX, and `cmd.exe /C` in Windows

## FAQs

Expand Down
5 changes: 5 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ version: "{build}"
os: Windows Server 2012 R2
clone_folder: c:\gopath\src\github.com\goeuro\myke

skip_tags: true
branches:
only:
- master

environment:
GOPATH: C:\gopath
matrix:
Expand Down

0 comments on commit cd2f469

Please sign in to comment.