WRAP runs command in detached tmux session, while capturing output to logfile.
Timestamps in logs are written in UTC timezone.
This execution is considered network/human fail safe, to some degree of course.
During my last vacation at "The middle of nowhere" village, I was struggling to run commands on remote host and keep logs over smartphone tethering.
$ wrap <command> [<session>] [<logfile>]
If log filename is not provided, it would be created automatically.
To guarantee filename on repeated calls, it's generated by SHA1 of command, eg. wrap.3b8ec645afd0203f086445d6a7aeccd98e5659ca.log.
Repeated execution of same WRAP command, would attach existing tmux session, if one is still running.
Note! Creating new window or pane within a session may affect standard workflow.
$ git clone [email protected]:foodpanda/wrap.git && cd wrap
$ make install
Custom location
$ PREFIX=~/bin make install
First run, Ctrl-c in the middle of execution.
$ T=v1.2.3 E=prod; wrap "./deployment.sh --env $E --tag $T --debug" deploy ~/"logs/deploy-${E}-${T}.log"
--> ./deployment.sh --env prod --tag v1.2.3 --debug <--
Ready to wrap this command? [y/N] y
> 2016-10-27 20:19:10 Tailing logs from '/home/jaymecd/logs/deploy-prod-v1.2.3.log' file ...
> 2016-10-27 20:19:10 Running: ./deployment.sh --env prod --tag v1.2.3 --debug
+ ./deployment.sh --env prod --tag v1.2.3 --debug
...
... (content clipped)
...
^C
Log still could be accessible via:
$ tail -f /home/jaymecd/logs/deploy-prod-v1.2.3.log
$ less /home/jaymecd/logs/deploy-prod-v1.2.3.log
Repeated run (while command is still running), press C-b d to detach tmux session.
$ T=v1.2.3 E=prod; wrap "./deployment.sh --env $E --tag $T --debug" deploy ~/"logs/deploy-${E}-${T}.log"
> press "C-b d" to detach <
[detached (from session deploy)]
+ ./deployment.sh --env prod --tag v1.2.3 --debug
...
... (content clipped)
...
real 2m32.002s
user 0m0.035s
sys 0m0.001s
> 2016-10-27 20:21:42 Finished (exit 0)
^C
Log still could be accessible via:
$ tail -f /home/jaymecd/logs/deploy-prod-v1.2.3.log
$ less /home/jaymecd/logs/deploy-prod-v1.2.3.log