我正在尝试调整我的Vagrantfile,以便它在项目根目录中自动创建一个文件夹,如果它丢失了.创建该文件夹是没有问题的,但我无法找出其中创建该文件夹.
我能够弄清楚这个信息在Vagrant::Environment对象上是可用的cwd,但我无法弄清楚如何从我的Vagrantfile中获取当前实例.Vagrant的文档似乎有点稀疏.
编辑:
我的问题不是关于如何使用Puppet.我正在写一些代码里面的Vagrantfile.我想知道如何获取当前的实例Vagrant::Environment.
尽管文档说您可以编译更新,但是我无法让Slick 3.1编译更新,而将要更新的值传递到已编译的块中。
对于我的用例,我想找到一个具有给定键的行,其中停用为空,并将停用时间设置为新的时间戳。
我想做的显而易见的事情是:
private[this] lazy val updateDeactiveTime = Compiled { (settingName: Rep[String], time: Rep[Instant]) =>
settings
.filter { row => row.name === settingName && row.deactivatedAt.isEmpty }
.map { _.deactivatedAt }
.update(Some(time))
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这给了我一个update不能接受的投诉Rep[Option[Instant]]:它想要一个Option[Instant]。
我了解Slick(不幸的是)不允许您在更新中使用动态计算的值。根据文档,限制操作之类的解决方法是使用ConstColumn[…]。尽职尽责,我尝试传递a ConstColumn[Option[Instant]],希望会有一些隐式转换或扩展,但是我仍然抱怨它必须是文字Option[Instant]。
当然,我有立即数,但是如果每次目标值更改时都必须重新编译更新,那么编译更新没有多大意义。
如果我使用a LiteralColumn[…],我可以打电话_.value,但是Compiled不会让我要求a LiteralColumn。Compiled也不允许我将参数设为time: Instant。