我试图创建一个使用红宝石(及净:: SSH)连接到服务器,并执行一些任务的程序.服务器的详细信息将提供为:
ssh://user:pass@host:port (for a host that does not yet have SSH keys)
Run Code Online (Sandbox Code Playgroud)
要么
user@host
Run Code Online (Sandbox Code Playgroud)
Net :: SSH需要以下格式:
Net::SSH.start('host', 'user', :password => "password")
Run Code Online (Sandbox Code Playgroud)
是否有gem/stdlib可以将URL处理为这种格式?还是一个可以匹配不同部分的简单正则表达式?
注意:我知道并使用了capistrano但在这种情况下我需要更低级别的控制.
the*_*Man 11
无论URI和寻址:: URI可以解析的网址,让你把它们分解成它们的组件.
URI包含在Ruby的标准库中,这很好,但是Addressable :: URI具有更多功能,而且当我必须在URL上做大量工作时,我会使用它.
require 'addressable/uri'
uri = Addressable::URI.parse('ssh://user:pass@www.example.com:81')
uri.host # => "www.example.com"
uri.user # => "user"
uri.password # => "pass"
uri.scheme # => "ssh"
uri.port # => 81
require 'uri'
uri = URI.parse('ssh://user:pass@www.example.com:81')
uri.host # => "www.example.com"
uri.user # => "user"
uri.password # => "pass"
uri.scheme # => "ssh"
uri.port # => 81
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5010 次 |
| 最近记录: |