Browse Source

consistently quote shell commands to handle spaces

addresses issues brought up in #34
phinze 13 years ago
parent
commit
501d1bad58
  1. 16
      lib/cask.rb
  2. 0
      lib/cask/cli/create.rb

16
lib/cask.rb

@ -119,7 +119,7 @@ class Cask
FileUtils.mkdir_p destination_path FileUtils.mkdir_p destination_path
_with_extracted_mountpoints(downloaded_path) do |mountpoint| _with_extracted_mountpoints(downloaded_path) do |mountpoint|
puts `ditto #{mountpoint} #{destination_path}` puts `ditto '#{mountpoint}' '#{destination_path}'`
end end
ohai "Success! #{self} installed to #{destination_path}" ohai "Success! #{self} installed to #{destination_path}"
@ -153,7 +153,7 @@ class Cask
def _with_extracted_mountpoints(path) def _with_extracted_mountpoints(path)
if _dmg?(path) if _dmg?(path)
File.open(path) do |dmg| File.open(path) do |dmg|
xml_str = `hdiutil mount -plist -nobrowse -readonly -noidme -mountrandom /tmp #{dmg.path}` xml_str = `hdiutil mount -plist -nobrowse -readonly -noidme -mountrandom /tmp '#{dmg.path}'`
hdiutil_info = Plist::parse_xml(xml_str) hdiutil_info = Plist::parse_xml(xml_str)
raise Exception.new("No disk entities returned by mount at #{dmg.path}") unless hdiutil_info.has_key?("system-entities") raise Exception.new("No disk entities returned by mount at #{dmg.path}") unless hdiutil_info.has_key?("system-entities")
mounts = hdiutil_info["system-entities"].collect { |entity| mounts = hdiutil_info["system-entities"].collect { |entity|
@ -165,13 +165,13 @@ class Cask
end end
ensure ensure
mounts.each do |mountpoint| mounts.each do |mountpoint|
`hdiutil eject #{mountpoint}` `hdiutil eject '#{mountpoint}'`
end end
end end
end end
elsif _zip?(path) elsif _zip?(path)
destdir = "/tmp/brewcask_#{@title}_extracted" destdir = "/tmp/brewcask_#{@title}_extracted"
`mkdir -p #{destdir}` `mkdir -p '#{destdir}'`
`unzip -d '#{destdir}' '#{path}'` `unzip -d '#{destdir}' '#{path}'`
begin begin
yield destdir yield destdir
@ -180,7 +180,7 @@ class Cask
end end
elsif _tar_bzip?(path) elsif _tar_bzip?(path)
destdir = "/tmp/brewcask_#{@title}_extracted" destdir = "/tmp/brewcask_#{@title}_extracted"
`mkdir -p #{destdir}` `mkdir -p '#{destdir}'`
`tar jxf '#{path}' -C '#{destdir}'` `tar jxf '#{path}' -C '#{destdir}'`
begin begin
yield destdir yield destdir
@ -193,17 +193,17 @@ class Cask
end end
def _dmg?(path) def _dmg?(path)
output = `hdiutil imageinfo #{path} 2>/dev/null` output = `hdiutil imageinfo '#{path}' 2>/dev/null`
output != '' output != ''
end end
def _zip?(path) def _zip?(path)
output = `file -Izb #{path}` output = `file -Izb '#{path}'`
output.chomp.include? 'compressed-encoding=application/zip; charset=binary; charset=binary' output.chomp.include? 'compressed-encoding=application/zip; charset=binary; charset=binary'
end end
def _tar_bzip?(path) def _tar_bzip?(path)
output = `file -Izb #{path}` output = `file -Izb '#{path}'`
output.chomp == 'application/x-tar; charset=binary compressed-encoding=application/x-bzip2; charset=binary; charset=binary' output.chomp == 'application/x-tar; charset=binary compressed-encoding=application/x-bzip2; charset=binary; charset=binary'
end end

0
lib/cask/cli/create.rb

Loading…
Cancel
Save