【问题标题】:getting the vagrant command line arguments inside the Vagrantfile在 Vagrantfile 中获取 vagrant 命令行参数
【发布时间】:2014-01-18 23:33:10
【问题描述】:

我有以下仅对 vagrant up 命令有意义的配置:

config.vm.provider :virtualbox do |vb|
  vb.gui = false
  if ENV["VB_GUI"] == "true" then vb.gui = true
  else
     puts("[info] VB_GUI environment variable not set so running headless")
  end
end

是否可以挂钩到 vagrant API 以检索当前正在执行的命令?例如

config.vm.provider :virtualbox do |vb|
  vb.gui = false
  if VAGRANT_API.command == "up"  # how can I do this?
    if ENV["VB_GUI"] == "true" then vb.gui = true
    else
       puts("[info] VB_GUI environment variable not set so running headless")
    end
  end
end

【问题讨论】:

    标签: vagrant


    【解决方案1】:

    Vagrantfile 只是 ruby​​ 代码,因此您可以使用 ARGV 数组轻松获取命令行参数。

    以下面的 vagrant 命令为例:

    vagrant up webserver

    这将启动在您的Vagrantfile 中定义为网络服务器的 Vagrant 框。然后,您可以像这样访问参数:

    ARGV[0] = up
    ARGV[1] = webserver
    

    因此,使用您的示例,您需要执行以下操作:

    config.vm.provider :virtualbox do |vb|
      vb.gui = false
      if ARGV[0] == "up"
        if ENV["VB_GUI"] == "true" then vb.gui = true
        else
           puts("[info] VB_GUI environment variable not set so running headless")
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2020-03-01
      • 1970-01-01
      • 2023-04-05
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 2018-10-27
      • 1970-01-01
      相关资源
      最近更新 更多