Skip to content

qDup-0.6.13

Compare
Choose a tag to compare
@willr3 willr3 released this 20 Apr 18:26
· 231 commits to master since this release

New Features from 0.6.7

Strict yaml validation will fail to parse yaml if there are extra keys. This helps catch indentation errors that put keys in the wrong location on the yaml tree.
Add else to js command for when the command returns a falsey javascript value

- js: (input,state)=>false
  then:
  - sh: shouldNotHappen.sh
  else:
  - sh: dosomething.sh

add support for a signal in the timer on a wait-for. This lets scripts take an action if a signal is not reached in a specified amount of time

- wait-for: never
  timer:
    10m:
    - signal: notyet

update sshd to 2.8.0 to address issues with Fedora 35 and newer ssh encryption negotiation
add support to run a script asynchronously (in a new ssh connection) when observing a command

- sh: tail -f server.log
  watch:
  - regex: error
    then:
    - script: 
        name: debugServer
        async: true

add /regex /js and /parse to the session debug endpoints on the debug server (localhost:31337)
add -Y command line argument to combine all the input yaml into a single, unified yaml output. This is similar to -T in that it will first validate the yaml and return errors if necessary
added a new top level globals object to the yaml syntax that currently support javascript for defining helper functions that are available in both patterns ${{jsFunction()}} and js execution

globals:
  javascript: |
    function jsFunction(val){
      return val*5
    }
```

`set-state` now returns the value of the state entry as the input to the subsequent commands
```yaml
- set-state: RUN.foo bar
  then:
  - sh: echo ${{foo}} #will output bar

fix bug where runs were not terminating when the only running scripts were in a wait-for. Runs should terminate if the only running scripts are wait-for and there is not a timer on the wait-for. This allows scripts to start in every run and only execute of a condition is met.