如何在厨师食谱中使用if语句?
我想只在文件夹不存在的情况下克隆存储库,如果不存在则更好克隆它,如果存在则拉出来
我有一个代码:
bash 'clone-mercurial-repository' do
if !File.exist?("/root/projects/some_repo")
code <<-EOH
cd '/root/projects/'
hg clone https://bitbucket.org/some_repo
EOH
end
end
此代码执行无关紧要,我也尝试将not if
放在最后,但它也无法正常工作..
问候,布莱克
答案 0 :(得分:5)
您可以使用only_if
和not_if
来控制任何资源(包括bash资源)的执行。
例如:
bash 'clone-mercurial-repository' do
code <<-EOH
cd '/root/projects/'
hg clone https://bitbucket.org/some_repo
EOH
not_if { File.exist?("/root/projects/some_repo") }
end
与您的问题无关,您可能需要查看mercurial cookbook以避免使用bash资源。
答案 1 :(得分:-2)
您还可以使用执行资源,如下所示:
public void notifyError(String requestType,VolleyError error) {
String body;
if(error.networkResponse.data!=null) {
String statusCode = String.valueOf(error.networkResponse.statusCode);
try {
if (error instanceof NetworkError) {
Log.d("internet","nao tem internet ligada");
}
else if (error instanceof ServerError) {
Log.d("internet","The server could not be found. Please try again after some time!!");
}
body = new String(error.networkResponse.data,"UTF-8");
JSONObject jsonObj = new JSONObject(body);
Log.d("body",String.valueOf(jsonObj.get("message")));
showToast(String.valueOf(jsonObj.get("message")));
} catch (UnsupportedEncodingException e) {
showToast("You need to connect to the internet!");
} catch (JSONException e) {
Log.d("json:","problems decoding jsonObj");
}
}