Scotty: A beautiful SSH task runner
freek.dev
freek.dev
I built baker (https://github.com/coezbek/baker) for this some time ago (pre-LLM mostly). It uses markdown with embedded bash and ruby commands to give you a checklist which is run both automated for commands or with human in the loop for things which aren't automated (like login to some admin panel and generate that key, copy it here).
The checklist gets checked off both by human actions (you confirm that you did it) and automated e.g. success bash command runs. So you keep a markdown artifact on where you are in your project and can continue later.
You can wrap commands to run via SSH (of course clunkier than what scotty here does, but you can select a port for SSH).
Thanks for sharing!
Ok.
> run them from your terminal and watch every step as it happens
> and watch every step as it happens
Yes, this is usually how scripts work.
> When everything finishes, you get a summary table with timing for each step.
> If a task fails, its output is shown and execution stops right there so you can investigate.
Yes, I write my larger scripts to do such things...
> Writing plain bash instead of Blade
Yes, probably a good idea.
Call me crazy (you're crazy!) but I'm not seeing the point.
https://github.com/spatie/scotty/issues/1
Literally would be one of the first things I would have tested personally!
> Scotty was built with the help of AI
So it sounds like my heuristic worked. =)
If you refuse to use software that was built with any AI assistance, well... good luck finding an operating system to run.
tar cpf - provision/ | ssh ubuntu@192.168.1.99 "tar xpf - -C /tmp && cd /tmp/provision && bash /tmp/provision/bootstrap.sh && rm -rf /tmp/provision"
Heres is the full use: https://gist.github.com/mariocesar/8e674ec40dad6b94114d2a44d...I named "Ansible for the Frugal"
Bash can be idempotent but isn’t by default, so you either spend time making and idempotent bash script or you spend time learning Ansible to accomplish the same thing in a reusable way
Half the time if you want to do something quick'n'dirty in Ansible playbooks you need to use shell anyway..
I participated in a hackathon recently where my deployment process was just a bash script doing scp/ssh to a remote server and it feels like Scotty would fit well to that kind of use-case.
It looks nicer.
I use good old GNU Make.