Sha256: 039aa084ba19bfcc35d7f100cea50fe960fbdc64a9058ec672e586340e7371c7

Contents?: true

Size: 1.16 KB

Versions: 7

Compression:

Stored size: 1.16 KB

Contents

require 'tempfile'

require "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)
          local_temp = Tempfile.new("vagrant-upload")
          local_temp.binmode
          local_temp.write(content)
          local_temp.close
          remote_temp = mktemp(machine)
          machine.communicate.upload(local_temp.path, "#{remote_temp}")
          local_temp.delete
          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

7 entries across 4 versions & 3 rubygems

Version Path
vagrant-unbundled-1.8.1.2 plugins/guests/nixos/cap/change_host_name.rb
vagrant-unbundled-1.8.1.1 plugins/guests/nixos/cap/change_host_name.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-272fb27e0536/plugins/guests/nixos/cap/change_host_name.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-b421af58e8b3/plugins/guests/nixos/cap/change_host_name.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-309e896975d1/plugins/guests/nixos/cap/change_host_name.rb
vagrant-cloudstack-1.1.0 vendor/bundle/bundler/gems/vagrant-1cf2a8db4ccb/plugins/guests/nixos/cap/change_host_name.rb
vagrant-tiktalik-0.0.3 vendor/bundle/ruby/2.0.0/bundler/gems/vagrant-1e28f1ac31e7/plugins/guests/nixos/cap/change_host_name.rb