在查看了我从未使用过的 rover 的源代码后,我确定现有代码不可能。
我为您创建了一个具有该功能的新扩展,它支持 ~ 和 ${HOME} 语法(它们是 bash 扩展,而不是直接属于操作系统的一部分,这就是 perl 不支持它们的原因)。
代码在这里:
https ://github.com/h4ck3rm1k3/perl-rover/commit/2c78aefb97e819956bb665b04056763f8df1b242
我很难测试它,因为我以前从未使用过 rover ,而且 rover 似乎不支持 scp。(我读到它是受支持的,但还不能测试它。)无论如何,如果你喜欢它,请告诉我。如果有合理的要求,我会做更多的工作。
更新
这是我的示例规则集:
示例规则集
[rulesets]
test:
{
put_file_from_home put_file "~/find2.sh" "/tmp/"
put_file_from_home put_file "${HOME}/find3.sh" "/tmp/"
}, ;
示例输出
这是示例输出,我无法让流动站工作。请参阅下面的测试用例。
测试输出
perl -I lib t/example2.t
Local was ~/find2.sh and home was /home/mdupont at lib/Rover/CoreExtension.pm line 19.
Local now /home/mdupont/find2.sh at lib/Rover/CoreExtension.pm line 22.
Local was ${HOME}/find3.sh and home was /home/mdupont at lib/Rover/CoreExtension.pm line 19.
Local now /home/mdupont/find3.sh at lib//Rover/CoreExtension.pm line 22.
新 sshport 选项的新配置选项
[hosts]
someexample:{
os linux
username myusername
description 'myhost'
sshport 12345
ftp_method_used sftp
};
更新2
不要在名称周围使用引号,在 args 之间使用逗号,
到 git@github.com:h4ck3rm1k3/perl-rover.git 2207417..7637741 CoreExtension -> CoreExtension
[rulesets]
test: { put_file_from_home ~/find2.sh,/tmp/ }, ;
[hosts]
localhost:{
os linux
username mdupont
description 'localhost'
ftp_methods sftp
ftp_method_used sftp };
麦克风