Sha256: 6ca0d66935826ad3654268d772f6574cead6e3e2b9aa27b4f4dfed84b38b6568
Contents?: true
Size: 1.76 KB
Versions: 10
Compression:
Stored size: 1.76 KB
Contents
require "pathname" require "vagrant/util/caps" module VagrantPlugins module HostLinux module Cap class FsISO extend Vagrant::Util::Caps::BuildISO @@logger = Log4r::Logger.new("vagrant::host::linux::fs_iso") BUILD_ISO_CMD = "mkisofs".freeze # Check that the host has the ability to generate ISOs # # @param [Vagrant::Environment] env # @return [Boolean] def self.isofs_available(env) !!Vagrant::Util::Which.which(BUILD_ISO_CMD) end # Generate an ISO file of the given source directory # # @param [Vagrant::Environment] env # @param [String] source_directory Contents of ISO # @param [Map] extra arguments to pass to the iso building command # :file_destination (string) location to store ISO # :volume_id (String) to set the volume name # @return [Pathname] ISO location # @note If file_destination exists, source_directory will be checked # for recent modifications and a new ISO will be generated if requried. def self.create_iso(env, source_directory, extra_opts={}) source_directory = Pathname.new(source_directory) file_destination = self.ensure_output_iso(extra_opts[:file_destination]) iso_command = [BUILD_ISO_CMD, "-joliet"] iso_command.concat(["-volid", extra_opts[:volume_id]]) if extra_opts[:volume_id] iso_command << "-o" iso_command << file_destination.to_s iso_command << source_directory.to_s self.build_iso(iso_command, source_directory, file_destination) @@logger.info("ISO available at #{file_destination}") file_destination end end end end end
Version data entries
10 entries across 10 versions & 3 rubygems