jolicode / castor

🦫 DX oriented task runner and command launcher built with PHP.
https://castor.jolicode.com
MIT License
406 stars 19 forks source link

Allow to run ssh commands to localhost #532

Open pierrelemee opened 2 hours ago

pierrelemee commented 2 hours ago

Allow to run ssh commands to localhost

TL;DR: as a user I might want to test ssh_run or other SSH commands to a local Docker container. For this, I would propose to add a flag allow_localhost, defaulted to false, in the $sshOptions to offer the user the ability to skip the "running ssh command over localhost" check

I'm giving a try to castor 🦫 (thanks to @lyrixx who shared his talk slides in X πŸ™ ) in order to write the configuration of my client's VPS as code.

This will mostly be ssh_run and ssh_upload directives. To ensure total recovery, I would like to test the whole set of tasks over a dedicated server. This is why I'm working on a local Docker container (basically a debian base image with the relevant ssh config on top of it) to be able to wipe and start over (using the --force-recreate Docker option).

However, when testing my Castor 🦫 tasks I face some Permission denied error that, after digging, revealed to be caused by the local command override in the Ssh::getExecuteCommand().

Although I understand this check, as a developer I would like to be allowed to overcome this by specifying a boolean $sshOptions named allow_localhost and defaulted to false to keep nominal behavior.

It's definitely not an urgent feature, and I would love to propose a patch for it it's πŸ‘Œ for you guys.

While waiting, I have a simple workaround by declaring a localhost in my /etc/hosts and fool my 🦫

And by the way: super good job on this πŸ‘

pierrelemee commented 2 hours ago

Ok sorry I just realized this is basically forced in spatie/ssh πŸ™ˆ I'll propose the improvement there in the first place ;)