mirror of
https://github.com/google/cdc-file-transfer.git
synced 2026-09-13 01:10:44 +03:00
[RemoteUtil] Add support for sftp (#64)
In a future CL, we will switch from scp to sftp. This CL adds support for calling sftp from RemoteUtil. In order to maintain backwards compatibility where people still set --scp-command or CDC_SCP_COMMAND instead of the sftp versions, this CL also adds the helper method RemoteUtil::ScpToSftpCommand, which attempts to convert an scp command to an sftp command. This is usually possible since the args are almost the same. For instance, if the scp command is C:\path\to\scp.exe -P 1234 -i <key_file> -oUserKnownHostsFile=known_hosts then the corresponding sftp command is most likely C:\path\to\sftp.exe -P 1234 -i <key_file> -oUserKnownHostsFile=known_hosts This works for instance for OpenSSH.
This commit is contained in:
@@ -127,5 +127,27 @@ TEST_F(RemoteUtilTest, QuoteForSsh) {
|
||||
"\"~user-name69/\\\"foo\\\"\""); // Nice!
|
||||
}
|
||||
|
||||
TEST_F(RemoteUtilTest, ScpToSftpCommand) {
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand(""), "");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("scp"), "sftp");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("scp.exe"), "sftp.exe");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("scp --arg"), "sftp --arg");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("ScP --aRg"), "sftp --aRg");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("winscp"), "winsftp");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("winscp.exe"), "winsftp.exe");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("winscp --arg"), "winsftp --arg");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("C:\\path\\to\\scp"),
|
||||
"C:\\path\\to\\sftp");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("C:\\path\\to\\scp.exe"),
|
||||
"C:\\path\\to\\sftp.exe");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("C:\\path\\to\\scp.exe --arg"),
|
||||
"C:\\path\\to\\sftp.exe --arg");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("C:\\scp.exe --argwithscp"),
|
||||
"C:\\sftp.exe --argwithscp");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("C:\\path_with_scp\\scp"),
|
||||
"C:\\path_with_scp\\sftp");
|
||||
EXPECT_EQ(RemoteUtil::ScpToSftpCommand("C:\\path\\to\\somethingelse"), "");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace cdc_ft
|
||||
|
||||
Reference in New Issue
Block a user