This repository was archived by the owner on Feb 25, 2025. It is now read-only.
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Get rid of shell scripting in ssh commands #69
Open
Description
SSH is like a box of chocolates. You never know which shell you get.
On Windows, you may get cmd or powershell.
On Linux, you may get bash, zsh, fish,...
The different shells are not compatible, and it's very hard to form scripts that run in every shell, so we should get rid of them if possible. For instance, in bash you can write.
if true; then
echo True
else
echo False
fi
In fish, this becomes:
if true
echo True
else
echo False
end
We currently have 2 places that run non-trivial shell scripts:
- CdcRsyncClient::StartServer() runs "if file does not exist, exit some_code, otherwise run it". The conditional is just a polish thing, so we can hide scary looking "command not found" errors and write "Server not deployed. Deploying...", but it can probably be solved in some other way.
- PortManagerWin::FindAvailableRemotePorts() runs "if ss exists, run it, otherwise run netstat"*. We should find available ports in C++ code.
(*) change not landed yet as of Jan 17, 2023