是否有一种方法可以尝试克隆不正常存在的存储库?在ruby中,我可以克隆这样的仓库:
system("hg clone https://username@bitbucket.org/username/repoThatDoesNotExist")
如果可以找到存储库,则可以正常运行。如果不能,则会弹出此错误消息:
abort: HTTP Error 404: Not Found
有没有一种方法可以处理这些消息并在脚本中继续而不是退出?我已经尝试检查错误代码并引发异常,但是它仍然不想继续进行其他操作。
基本上,我只想能够在不退出脚本的情况下检查尝试克隆的回购是否存在。
感谢您的帮助。
答案 0 :(得分:2)
您可以使用Open3#capture3,它会为您提供命令的状态,调用success?
,然后您可以检查它是否抛出了错误或是否成功。
require 'open3'
ERROR_MESSAGE = 'abort: HTTP Error 404: Not Found'.freeze
def clone_repo(repo)
_, _, status = Open3.capture3("hg clone #{repo}")
return ERROR_MESSAGE unless status.success?
end
p clone_repo('https://username@bitbucket.org/username/repoThatDoesNotExist')