当我们想第一次运行流浪汉时,如何检查项目目录中是否存在已同步的文件夹,如果不存在,则在继续进行下一步之前创建?
我尝试:
config.trigger.before [:up] do |trigger|
trigger.info = "Create log, tmp, webroot/img folders"
trigger.run = {path: ".provisioning/before_up.sh"}
end
和
#!/bin/bash
# before_up.sh
if [ ! -d "logs" ]; then
sudo mkdir logs
fi
if [ ! -d "tmp" ]; then
sudo mkdir tmp
fi
if [ ! -d "webroot/img" ]; then
sudo mkdir webroot/img
fi
但是有错误
==> default: Running triggers before up ...
==> default: Running trigger...
==> default: Create logs, tmp, webroot/img folders
default: Running local script: .provisioning/before_up.sh
==> default: Trigger run failed
==> default: Permission denied - /Users/me/apps/.provisioning/before_up.sh
答案 0 :(得分:0)
这是解决方案
在Vagrant文件顶部添加:
FileUtils.mkdir_p './logs'
FileUtils.mkdir_p './tmp'
FileUtils.mkdir_p './webroot/img'
Vagrant.configure("2") do |config|
# config here
end
来自ruby文档: https://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-mkdir_p
mkdir_p(列表,选项= {})单击以切换源选项:模式noop 详细
创建一个目录及其所有父目录。例如,
FileUtils.mkdir_p'/ usr / local / lib / ruby'使执行以下操作 目录(如果不存在)。
- / usr
- / usr / local
- / usr / local / lib
- / usr / local / lib / ruby