Stephen Prater
bd5882f0f0
Add Preconditions to Tasks
2019-05-17 13:51:15 -07:00
Andrey Nering
90613220c6
Fixes some bugs relatated to commands output handling
...
This seems to fix some of the bugs reported by issues like #114 and #190 .
Seems that the standard library's os/exec package has some black magic to
detect if a writer is an actual *os.File, and some stuff are handled
differently, then.
Fixes #114
Fixes #190
2019-04-21 16:55:47 -03:00
jaedle
9cfac1642a
rename method for summary/summaries
2019-03-04 13:03:13 +01:00
jaedle
db90e87d10
rearrange imports
2019-03-04 12:53:06 +01:00
jaedle
c7f17b5319
refactoring
2019-03-04 12:25:42 +01:00
jaedle
23c4adcef6
add spacing for tasks
2019-03-04 12:15:40 +01:00
jaedle
93bfd57856
print summary for multiple tasks
2019-03-04 12:09:58 +01:00
jaedle
3ca590b185
display summary for tasks without summary/description
2019-02-24 19:02:44 +01:00
jaedle
3ee66ef705
remove output to own package
2019-02-24 16:25:27 +01:00
jaedle
a1765e1d33
refactoring
2019-02-24 16:17:47 +01:00
jaedle
4dcb124693
print commands on summary only if commands are present
2019-02-24 16:08:32 +01:00
jaedle
31ecf167cc
rename to summary in test fixtures
2019-02-24 15:54:11 +01:00
jaedle
3999480d64
refactoring
2019-02-24 15:45:39 +01:00
jaedle
9e9ffeb5d5
refactoring
2019-02-24 15:43:45 +01:00
jaedle
33d4ad4d84
rename to summary
2019-02-24 15:38:18 +01:00
jaedle
d05d418c4c
renaming field in taskfile to summary
2019-02-24 15:37:02 +01:00
jaedle
06d0af7a1d
rename details in Executor to summary
2019-02-24 15:33:09 +01:00
jaedle
2676ab9a59
renamed program flag to summary
2019-02-24 15:31:46 +01:00
jaedle
a1837d553e
refactoring
2019-02-24 14:59:19 +01:00
jaedle
fdbc130d8d
do not show empty dependencies
2019-02-24 14:55:04 +01:00
jaedle
4b3cea3812
display dependend tasks
2019-02-24 14:53:39 +01:00
jaedle
0446cfdba0
display commands of task
2019-02-24 14:37:14 +01:00
jaedle
b05fa0821d
move expectations for output to testdata
2019-02-24 14:18:07 +01:00
jaedle
f1d83e92a7
print command stub on details
2019-02-24 14:08:27 +01:00
jaedle
31b60f7f60
display task name on details
2019-02-24 14:01:53 +01:00
jaedle
1ac6f17e6a
should not surpress empty lines expect on last line
2019-02-24 11:58:44 +01:00
jaedle
b97221cdb2
ignore empty lines on description
2019-02-24 11:31:25 +01:00
jaedle
0164bc21ea
be more specific in tests about output
2019-02-24 11:28:15 +01:00
jaedle
9be7521b83
refactoring
2019-02-24 09:28:25 +01:00
jaedle
c73ddc3552
refactoring
2019-02-24 09:27:26 +01:00
jaedle
4b7f058f41
refacotring
2019-02-24 09:25:39 +01:00
jaedle
07221a1b20
output detailed task description
2019-02-24 09:24:57 +01:00
jaedle
13614fb3c4
add details flag for cli
2019-02-24 08:51:20 +01:00
Andrey Nering
902f0d3ac4
Don't persist new checksum on the disk if dry mode is enabled
...
Fixes #166
2019-02-09 10:44:35 -02:00
Andrey Nering
713ecd35f6
Pass context as an argument
2019-02-09 10:16:13 -02:00
Andrey Nering
27b35157cd
Indentation fix
2019-02-09 10:15:38 -02:00
kj
a026d72924
Add execute output style options
2019-02-05 15:42:57 +09:00
Andrey Nering
aac6c5a1c7
Add hability to globally set environment variables
...
Closes #138
2019-01-02 12:06:12 -02:00
Andrey Nering
3cbc89769d
Re-write import paths to v2
2018-11-04 21:23:35 -02:00
Andrey Nering
5d9de14ca3
Increment the current Taskfile version to 2.2
2018-10-13 18:25:40 -03:00
Andrey Nering
8bdf5c554d
Fixes after updating mvdan.cc/sh
2018-09-01 11:02:23 -03:00
Andrey Nering
491da0ceb9
"ignore_error" is only available on version >= 2.1
2018-08-19 15:46:07 -03:00
Andrey Nering
feaf70922d
Allow ignore_error at task level
2018-08-05 12:53:42 -03:00
Andrey Nering
c70343a5bc
Handle ignore_error one level up on the code
2018-08-05 12:40:11 -03:00
Andrey Nering
550c116aea
Merge branch 'master' into master
2018-08-05 11:32:07 -03:00
Andrey Nering
a5f31a4280
Dry run small code style changes
2018-08-05 11:28:02 -03:00
Tobias Salzmann
90a5f17f58
Merge branch 'master' into master
2018-08-01 10:47:25 +02:00
Tobias Salzmann
108cb91d95
IgnoreError
...
* Document ignore_error
* ignore_error only for commands
2018-08-01 10:44:53 +02:00
Josh Bebbington
1c7ca94d49
Implemented dry run mode
...
Added a --dry-run flag that compiles and steps through each task, but does not execute them. The commands that would have been run are printed. See #125 .
2018-07-29 00:39:25 +01:00
Andrey Nering
9f294b4d10
Refactor and move logic of reading Taskfiles to its own package
...
Idea to making things easier to start implementing #98
2018-07-22 16:10:20 -03:00
Tobias Salzmann
05600601ff
add ignoreError option
2018-07-10 10:44:58 +02:00
Andrey Nering
09eab770a7
Skip empty commands
...
Fixes #120
2018-06-24 10:29:46 -03:00
Andrey Nering
a407b0a8eb
First step implementing "prefixed" output option
...
Ref #104
2018-04-22 15:41:53 -03:00
Andrey Nering
051ff35878
Add "output" option to Taskfile to control how stuff are printed to stdout/stderr
...
First step for #104
2018-04-15 14:37:44 -03:00
Andrey Nering
8b3c34c308
Add "output" options to the Taskfile
...
Also, fix handling of Taskfile by making the version an instance of
`semver.Constraints` instead of `semver.Version`. This makes the version
works as described on TASKFILE_VERSIONS.md document, i.e. version "2" will
include "2.x" features but version "2.0" not.
2018-04-15 11:11:07 -03:00
Andrey Nering
120d0be84c
Fixes panic on task --list
...
Fixes #99
2018-03-11 14:39:40 -03:00
Andrey Nering
c1ae36866e
Remove warning for version 2
2018-03-04 16:27:16 -03:00
Andrey Nering
51998f706f
Allow customizable number of expansions
...
Updates #66
2018-03-04 15:50:03 -03:00
Andrey Nering
1a3df08aca
Allow global variables in the Taskfile
...
Closes #66
2018-03-04 15:39:14 -03:00
Andrey Nering
12c0d18932
Move setting of default version to "taskfile" package
2018-03-03 18:56:15 -03:00
Andrey Nering
2d4ca37226
Use semver for Taskfile versions
2018-03-03 18:54:42 -03:00
Andrey Nering
19d4b8b7f7
Add warning about Taskfile version 2 until v2.0.0 release
2018-02-18 10:04:17 -03:00
Andrey Nering
3556942516
Improve nested variables support
...
Closes #76 #89 #77 #83
2018-02-18 09:50:39 -03:00
Andrey Nering
87a200e42c
Extract some functionality to its own packages
...
Like variable and template handling, and logging
2018-02-17 16:12:41 -02:00
Andrey Nering
152fc0ad38
Move all structs related to Taskfile to its own package
2018-02-17 14:22:18 -02:00
Andrey Nering
134c6b79c4
Add Taskfile struct and start implementing new format
...
Updates #54 , #66 and #77
2017-12-29 18:46:15 -02:00
Andrey Nering
71e7cd5808
listening for SIGINT and SIGTERM
...
closes #75
2017-11-19 18:33:57 -02:00
Andrey Nering
33b167215d
move some packages to the "internal" directory
...
- this makes it impossible to import these packages outside Task
- as a side effect, it makes the root directory cleaner
2017-10-15 17:58:21 -02:00
Andrey Nering
abb19dfbf8
print logs to stderr instead of stdout
...
also, don't print up-to-date status when the --silent flag was given
closes #68
2017-09-30 14:56:35 -03:00
Andrey Nering
48bf09da21
remove deprecated set
keyword
2017-09-17 11:24:30 -03:00
Andrey Nering
c295a1998a
add checksum based status check, alternative to timestamp based
2017-09-17 11:06:47 -03:00
Andrey Nering
f3097845b4
allow assigning variables to tasks at run time via CLI
...
using a similar syntax than setting env variables to command in bash,
but used right after the task:
```bash
task print MESSAGE=Hello!
```
closes #33
2017-09-07 13:57:06 -03:00
Sindre Røkenes Myren
7a64530e83
Added suport for multiline variables from sh
...
Instead of giving an error on multiline results from sh, the results are
now stored as is, except that the last newline is stripped away to make
the output of most commands easy to use in shell commands.
Two helper functions have been added to help deal with multi-line
results. In addition, previous PascalCase template function names have
been renamed to camelCase for consistency with the sprig lib.
2017-09-04 10:14:09 +02:00
Sindre Røkenes Myren
72bfd94329
Fixes env: remove square braces and evaluate shell ( #62 )
...
Fixes bug #61 , and makes `env` work more similar to `vars` by allowing
dynamic shell values to be evaluated as part of `CompiledTask`.
2017-08-16 08:04:58 -03:00
Andrey Nering
e765b7a9c4
do not check for maximum call if is watch
2017-08-05 13:26:30 -03:00
Andrey Nering
c210e34ce3
watch: switch to watcher as waych lib and few fixes
...
watcher whould be more consistent across differente OSes
2017-08-05 11:50:39 -03:00
Andrey Nering
f54dde4f78
func isUpToDate should be bound to Task struct
2017-07-30 19:45:59 -03:00
Andrey Nering
70ef9fbcfe
rename func: ReplaceVariables -> CompiledTask
2017-07-30 19:34:28 -03:00
Andrey Nering
09e84c2583
always echo command if is verbose mode
2017-07-30 19:21:06 -03:00
Sindre Røkenes Myren
31faf05c3a
Reintroduce template evaluation in variables
...
With a recent commit, template evaluation for variables in tasks got
broken. This reindroudces temmplate evaluation in taks, and resolves
a series of issues that where previouisly present on master, such as:
- Taskvars did not get evaluated as templates.
- Taskvars would, in contrast to the documentation, _override_ task
variables for the taks called directly via `Executor.Run(args
...string)`. This caused different behaviour in the "default" task
v.s. other tasks.
This commit ensures:
- Priority order for variables is now according to the documentation,
also for the "default" task.
- Variables gets resolved in a particular order to ensure logical
access to varaibles on template compile time, and that template
compilation finds place _before_ resolution of dynamic variables.
This change also allows the following to work:
task:
vars:
A: "52"
B: "{{.A}}"
However, the following will always replace C with the uncompiled
`{{.A}}`:
task:
vars:
A: "52"
C: "{{.B}}"
B: "{{.A}}"
Several tests have also been added to prevent this feature from breaking
again. This should hopefully finally resolve issue #40 .
2017-07-22 00:50:23 +02:00
Andrey Nering
d0b37df615
add silent mode to disable echoing of commands
2017-07-19 20:20:24 -03:00
Andrey Nering
dc6cb68327
rename file.go to status.go, and move related code there
2017-07-16 16:15:29 -03:00
Andrey Nering
72250b32d3
replace variables in a task once, instead of mixing these calls with unrelated code
...
this is the first big step of #45
now t.ReplaceVariable will return a copy of the task, but with variables
replaced
now we don't need to replace variables everywhere in the code, and will
make other refactorings easier
2017-07-16 16:09:55 -03:00
Andrey Nering
968a29d869
deduplicate conversion from dep and cmd to call
2017-07-15 15:46:53 -03:00
Andrey Nering
e8e914b11c
use YAML for dynamix variable instead of $ prefix
...
$ prefix still works but is now deprecated
before:
VAR: $echo var
after:
VAR:
sh: echo bar
closes #46
2017-07-15 15:28:59 -03:00
Andrey Nering
5ece1d74f6
fix Taskvars.yml vars not available while interpolating vars
prop
...
closes #40
2017-07-15 14:40:58 -03:00
Andrey Nering
998935ea55
add --list (or -l) flag to print existing tasks
...
If an inexixtent task is given, the help also prints as before
Also fixing README documentation
Closes #51
2017-07-15 14:10:46 -03:00
Sindre Røkenes Myren
769e25f080
Consider task up-to-date on equal timestamps
...
Fixes issue #48 by considering a task up-to-date if the newest
file from sources and the oldest file from generates has
exactly the same time-stamp.
2017-07-12 18:18:26 +02:00
Sindre Myren
a548c63a92
Bugfix: allow templating when calling deps
...
Fixes issue #42 by allowing for template evaluatation on task override
variables when the task is launched as dependency.
2017-07-09 23:48:36 +02:00
Andrey Nering
5268df6bfd
only get variable map twice and implement vars template
...
ref #40
2017-07-08 16:00:17 -03:00
Andrey Nering
0da130ee2c
refactor: simplify some controls
2017-07-08 15:08:44 -03:00
Andrey Nering
6e880c9027
refactor: don't need to run template on Executor.Dir
2017-07-08 15:01:45 -03:00
Andrey Nering
ff1c49f111
refactor: better usage of bytes.Buffer type
2017-07-08 14:57:12 -03:00
Andrey Nering
7a7f66dfdc
refactor: join task and vars parameters in a single Call struct
2017-07-08 14:34:17 -03:00
Andrey Nering
2dd3564da1
changed cyclic dep detection
...
since interpolation can be used, detection should be a execution time,
and not before
now, to prevent infinite execution, there's a miximum of 100 calls per
task
closes #37
2017-07-08 13:33:55 -03:00
Andrey Nering
06031efc09
cyclic: refactor to return error instead
2017-07-08 10:13:56 -03:00
Sindre Røkenes Myren
2f9381065d
Allow template evaluation in parameters
...
When passing variables to a sub-task, allow template evaluation
within the passed-on variables.
2017-07-07 00:47:56 +02:00
Andrey Nering
ad1a440576
cache dymanic variables
2017-07-05 21:03:59 -03:00
Andrey Nering
222b5cb587
add verbose mode (-v flag)
2017-07-05 20:56:31 -03:00
Andrey Nering
06d80e92eb
rename Cmd.Params to Cmd.Vars
2017-07-05 20:07:27 -03:00
Andrey Nering
b8fe8d465e
refactor: onyl read Taskvars file once
2017-07-03 21:16:10 -03:00
Andrey Nering
196d3cb13d
add custom Cmd and Dep types
2017-07-03 21:04:38 -03:00
Sindre Røkenes Myren
2ace0defd0
Print command, also when "set:" is specified
...
Always prints the command, even when the
set-keyword is used within the task.
2017-07-03 15:05:19 +02:00
Andrey Nering
9ba44f3e6e
allow custom Stdin, Stdout and Stderr while running as a lib
2017-07-01 15:05:51 -03:00
Andrey Nering
81e0f170ef
accept setting dir of execution and improve tests
...
One test is not yet migrated. First we should have specific
Stdin, Stdout and Stderr for executor.
2017-06-24 20:09:05 -03:00
Andrey Nering
540e458b16
refactor isUpToDate()
2017-06-04 16:45:34 -03:00
Andrey Nering
b530cba0d5
Abstract Tasks type
2017-06-04 16:41:38 -03:00
Andrey Nering
f98bf6c4b1
refactor: Create executor struct to get rid of global variables
...
Maybe eventually help on #17
2017-06-04 16:02:04 -03:00
Andrey Nering
2615000609
Add --init flag to create a new Taskfile
2017-05-17 15:38:46 -03:00
Andrey Nering
83f1b213fa
Use context on status commands
2017-05-17 14:53:39 -03:00
Andrey Nering
2a2dfce137
Add status option to prevent task from running
...
Closes #27
2017-05-17 14:37:16 -03:00
Andrey Nering
b269c6e162
Allow interpolation on "generates" and "sources" attributes
...
Closes #26
2017-04-30 19:32:33 -03:00
Andrey Nering
8b76911675
Small refactor of variables replacing
2017-04-30 19:13:21 -03:00
Andrey Nering
6bc27baa96
Migrate from os/exec.Cmd to a native Go sh interpreter
...
github.com/mvdan/sh
Closes #23
2017-04-24 09:45:57 -03:00
Andrey Nering
c591ea4185
Use context together with errgroup
...
This will let other deps to be killed when one of the deps returns an
error.
Before this change, the process could keep running even after Task
exited.
2017-04-12 20:53:41 -03:00
Andrey Nering
109f20f193
Using golang.org/x/sync/errgroup to exec deps
2017-04-12 20:39:52 -03:00
Andrey Nering
822f7f83ee
execext package: support context command
2017-04-12 20:32:56 -03:00
Andrey Nering
72a6727e31
Watch task
2017-04-01 16:11:32 -03:00
Andrey Nering
36614dccf8
More sophisticated cyclic dependency detection
2017-03-25 16:06:49 -03:00
Andrey Nering
59306cda38
Possibility to call another task
2017-03-25 15:26:42 -03:00
Andrey Nering
2054a1bc34
Minor improvements for tasks description
2017-03-19 15:18:18 -03:00
Rene Zbinden
e4c1cc3e77
add help task
...
Signed-off-by: Andrey Nering <andrey.nering@gmail.com>
2017-03-19 15:00:25 -03:00
Andrey Nering
ce823ad510
Run deps concurrently
2017-03-15 20:19:29 -03:00
Andrey Nering
94c33668bd
Print command right before run
2017-03-12 18:02:33 -03:00
Andrey Nering
8c5e7e89cd
Little refactor on command creation
2017-03-12 17:18:59 -03:00
Sascha Andres
12babf4204
Support for a default branch
2017-03-09 17:18:46 +01:00
Andrey Nering
0cc7fae704
Using receiver instead of passing t.Env as parameters
2017-03-08 18:39:47 -03:00
Sascha Andres
ef75d5061d
Merge branch 'master'
...
Conflicts:
README.md
task.go
2017-03-07 12:35:45 +01:00
Sascha Andres
5b3c11eabd
Merge pull request #9 from go-task/feature/env
...
Allow specifying additional environment settings
2017-03-07 12:31:46 +01:00
Sascha Andres
6636cd38c0
Implemented os specific task file support
2017-03-07 09:45:14 +01:00
Rene Zbinden
f9454a3808
fix trailing white space for set instruction
2017-03-07 08:01:20 +01:00
Sascha Andres
72528af18a
Applying variables to env section
2017-03-06 13:52:46 +01:00
Sascha Andres
6f7b26908f
Added ability to add environment variables per task
...
Add an anv section to the task
2017-03-06 13:49:17 +01:00
Andrey Nering
91d5fa5fe6
Switch variable replacing with Go's template engine
2017-03-05 16:49:44 -03:00
Andrey Nering
7db3db48b0
Minimal refactoring od isTaskUpToDate()
2017-03-05 15:59:30 -03:00
Andrey Nering
fa850d1440
Rename "variables" key to "vars" for brevity
2017-03-05 15:56:22 -03:00
Andrey Nering
3aaf1b2ec1
Refactoring and redirect Stdout and Stdin of not set var
2017-03-05 15:52:58 -03:00
Sascha Andres
561c213a92
Running deps first
2017-03-05 10:15:49 +01:00
Sascha Andres
e6bb0cfc6d
Changed to be quiet when a variable is set
2017-03-05 10:07:08 +01:00
Sascha Andres
a9181255b8
Merge branch 'master' into master
2017-03-03 09:01:59 +01:00
Andrey Nering
576b18246a
Prefix all output messages from task with "task: "
...
This makes it easier to know if a message comes from task or from a command
stdout or stderr
2017-03-02 20:56:40 -03:00
Andrey Nering
a9b8e31228
Move error types to its own file
2017-03-02 20:52:03 -03:00
Andrey Nering
b8116015c7
Minor improvements for #5
2017-03-02 20:45:52 -03:00
Andrey Nering
f7d119f544
Merge pull request #5 from sascha-andres/master
...
Simple cyclic dependency detection
2017-03-02 20:39:20 -03:00
Sascha Andres
9abe71e967
Moved handleVariables() into command loop
2017-03-02 20:34:09 +01:00
Sascha Andres
eb783d04b8
Allow setting a variable
2017-03-02 20:19:25 +01:00
Andrey Nering
c655f23755
Running deps before verifying if the current task is up-to-date
2017-03-02 08:56:13 -03:00
Sascha Andres
b9820c5c7d
Handling errors on variable handling
...
Relates to #2
2017-03-02 11:30:59 +01:00
Sascha Andres
240589978d
Variable handling
...
Relates to #2
2017-03-02 10:46:20 +01:00
Sascha Andres
ea2e86e398
Simple cyclic dependency detection
2017-03-02 09:38:23 +01:00