Skip to content
Snippets Groups Projects
Commit a648e46d authored by Max Howell's avatar Max Howell
Browse files

Leave permissions of installed files in sensible state

No write permission for files, executable when required etc.
parent 9f9d95c1
No related branches found
No related tags found
No related merge requests found
......@@ -98,7 +98,10 @@ class Pathname
end
def install src
FileUtils.mv src, to_s
if File.exist? src
mkpath
FileUtils.mv src, to_s
end
end
def cp dst
......@@ -166,12 +169,6 @@ class AbstractFormula
# end ruby is weird section
end
private
def maybe_mkpath path
path.mkpath unless path.exist?
return path
end
public
def prefix
raise "@name.nil!" if @name.nil?
......@@ -179,22 +176,22 @@ public
$cellar+@name+@version
end
def bin
maybe_mkpath prefix+'bin'
prefix+'bin'
end
def doc
maybe_mkpath prefix+'share'+'doc'+name
prefix+'share'+'doc'+name
end
def man
maybe_mkpath prefix+'share'+'man'
prefix+'share'+'man'
end
def man1
maybe_mkpath prefix+'share'+'man'+'man1'
prefix+'share'+'man'+'man1'
end
def lib
maybe_mkpath prefix+'lib'
prefix+'lib'
end
def include
maybe_mkpath prefix+'include'
prefix+'include'
end
def caveats
......@@ -247,14 +244,23 @@ public
else
fo=`file -h #{path}`
args=nil
chmod=0444
args='-SxX' if fo =~ /Mach-O dynamically linked shared library/
args='' if fo =~ /Mach-O executable/ #defaults strip everything
if fo =~ /Mach-O executable/ #defaults strip everything
args='' # still do the strip
chmod=0544
end
if args
puts "Stripping: #{path}" if ARGV.include? '--verbose'
path.chmod 0644 # so we can strip
`strip #{args} #{path}`
end
path.chmod chmod
end
end}
# remove empty directories
`perl -MFile::Find -e"finddepth(sub{rmdir},'#{prefix}')"`
end
protected
......@@ -328,7 +334,7 @@ end
class Formula <UnidentifiedFormula
def initialize name
super name
@version=extract_version Pathname.new(File.basename(@url)).stem
@version=extract_version Pathname.new(File.basename(@url)).stem unless @version
end
end
......
......@@ -42,6 +42,11 @@ class BeerTasting <Test::Unit::TestCase
assert_equal 'R13B', r.version
end
def test_p7zip_version_style
r=TestFormula.new "http://kent.dl.sourceforge.net/sourceforge/p7zip/p7zip_9.04_src_all.tar.bz2"
assert_equal '9.04', r.version
end
def test_astyle_verson_style
r=TestFormula.new "http://kent.dl.sourceforge.net/sourceforge/astyle/astyle_1.23_macosx.tar.gz"
assert_equal '1.23', r.version
......
......@@ -82,6 +82,7 @@ end
def rm keg
#TODO if multiple versions don't rm all unless --force
path=$cellar+keg
`chmod -R u+rw #{path}` # we leave things read only
path.rmtree
puts "#{path} removed (#{prune} files)"
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment