Skip to content
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
@ljusten

Description

@ljusten

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions