top | item 30927009

(no title)

Wallacy | 3 years ago

If the update is:

set -e -u -o pipefail

(dos-make-addr-conf | tee config.toml) && dosctr set template_vars config.toml

well....

`tee config.toml` will still produce a empty config.toml

(set -e - u -o pipefail;false | tee config.toml) && cat config.toml

But you can use the '>' operator, that will create the file only if the command runs successful:

dos-make-addr-conf > config.toml && dosctr set template_vars config.toml

discuss

order

faho|3 years ago

> But you can use the '>' operator, that will create the file only if the command runs successful:

It will still create the file.

Run this in bash, zsh or fish:

    false > falsefile
It will create an empty file called "falsefile". This is because the shell opens the file before the program runs.

What fixes it in your script is the `&&`. That causes the `dosctr` to only be run if the `dos-make-addr-conf` succeeded.

Wallacy|3 years ago

You are right. My bad! Thanks.