Sha256: 2a692102e00c6dbdabed442e5252f69684c29ebc9acefa7a82b2d377e761c0d0

Contents?: true

Size: 1.17 KB

Versions: 56

Compression:

Stored size: 1.17 KB

Contents

require "tempfile"

require_relative "../../../../lib/vagrant/util/template_renderer"

module VagrantPlugins
  module GuestNixos
    module Cap
      class ChangeHostName
        include Vagrant::Util

        def self.change_host_name(machine, name)
          # upload the config file
          hostname_module = TemplateRenderer.render("guests/nixos/hostname", name: name)
          upload(machine, hostname_module, "/etc/nixos/vagrant-hostname.nix")
        end

        # Upload a file.
        def self.upload(machine, content, remote_path)
          remote_temp = mktemp(machine)

          Tempfile.open("vagrant-nixos-change-host-name") do |f|
            f.binmode
            f.write(content)
            f.fsync
            f.close
            machine.communicate.upload(f.path, "#{remote_temp}")
          end

          machine.communicate.sudo("mv #{remote_temp} #{remote_path}")
        end

        # Create a temp file.
        def self.mktemp(machine)
          path = nil

          machine.communicate.execute("mktemp --suffix -vagrant-upload") do |type, result|
            path = result.chomp if type == :stdout
          end
          path
        end
      end
    end
  end
end

Version data entries

56 entries across 52 versions & 6 rubygems

Version Path
vagrant-unbundled-2.2.0.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.1.4.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.1.2.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-packet-0.1.2 vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/nixos/cap/change_host_name.rb
vagrant-packet-0.1.2 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/nixos/cap/change_host_name.rb
vagrant-packet-0.1.2 vendor/bundle/ruby/2.4.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/nixos/cap/change_host_name.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/nixos/cap/change_host_name.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/nixos/cap/change_host_name.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/bundler/gems/vagrant-04f7215b5e3f/plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.1.1.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.0.4.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.0.3.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-aws-detiber-0.7.2.pre.4 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-419afb4dcffe/plugins/guests/nixos/cap/change_host_name.rb
vagrant-aws-detiber-0.7.2.pre.3 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-419afb4dcffe/plugins/guests/nixos/cap/change_host_name.rb
vagrant-aws-detiber-0.7.2.pre.2 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-419afb4dcffe/plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.0.2.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.0.1.0 plugins/guests/nixos/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.22 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-f3fdbf414272/plugins/guests/nixos/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.16 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-1ee58c40e3f5/plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-2.0.0.1 plugins/guests/nixos/cap/change_host_name.rb