class Linecook::Squashfs
Constants
- EXCLUDE_PROFILES
Public Class Methods
new(config)
click to toggle source
# File lib/linecook-gem/packager/squashfs.rb, line 28 def initialize(config) @excludes = [] @excludes << EXCLUDE_PROFILES[:common] @excludes << EXCLUDE_PROFILES[config[:distro]] if config[:distro] @excludes << config[:excludes] if config[:excludes] @excludes.flatten! @outdir = config[:outdir] || Dir.pwd end
Public Instance Methods
package(image)
click to toggle source
# File lib/linecook-gem/packager/squashfs.rb, line 37 def package(image) FileUtils.mkdir_p(@outdir) tmpdir = Dir.mktmpdir("#{image.id}-squashfs") outfile = File.join(@outdir, "#{image.id}.squashfs") puts "Extracting #{image.id} to temporary directory #{tmpdir}..." system("sudo tar -C #{tmpdir} -xpf #{image.path}") system("sudo mksquashfs #{tmpdir} #{outfile} -noappend -wildcards -e #{@excludes.map { |e| "'#{e}'" }.join(' ')}") puts "Squashed image is at #{outfile}" ensure puts "Cleaning up #{tmpdir}..." system("sudo rm -rf #{tmpdir}") end