65 lines
1.9 KiB
Ruby
65 lines
1.9 KiB
Ruby
require 'formula'
|
|
|
|
def use_default_names?
|
|
ARGV.include? '--default-names'
|
|
end
|
|
|
|
def coreutils_aliases
|
|
s = "brew_prefix=`brew --prefix`\n"
|
|
|
|
%w{
|
|
base64 basename cat chcon chgrp chmod chown chroot cksum comm cp csplit
|
|
cut date dd df dir dircolors dirname du echo env expand expr factor false
|
|
fmt fold gropus head hostid id install join kill link ln logname ls md5sum
|
|
mkdir mkfifo mknod mktemp mv nice nl nohup od paste pathchk pinky pr
|
|
printenv printf ptx pwd readlink rm rmdir runcon seq sha1sum sha225sum
|
|
sha256sum sha384sum sha512sum shred shuf sleep sort split stat stty sum
|
|
sync tac tail tee test touch tr true tsort tty uname unexpand uniq unlink
|
|
uptime users vdir wc who whoami yes
|
|
}.each do |g|
|
|
s += "alias #{g}=\"$brew_prefix/bin/g#{g}\"\n"
|
|
end
|
|
|
|
s += "alias '['=\"$brew_prefix/bin/g\\[\"\n"
|
|
|
|
return s
|
|
end
|
|
|
|
class Coreutils < Formula
|
|
url "http://ftp.gnu.org/gnu/coreutils/coreutils-8.7.tar.gz"
|
|
md5 '3c1ae9531159447083ae8f25ae554b81'
|
|
homepage 'http://www.gnu.org/software/coreutils'
|
|
|
|
def options
|
|
[['--default-names', "Do NOT prepend 'g' to the binary; will override system utils."]]
|
|
end
|
|
|
|
def install
|
|
args = ["--prefix=#{prefix}"]
|
|
args << "--program-prefix=g" unless use_default_names?
|
|
|
|
system "./configure", *args
|
|
system "make install"
|
|
|
|
(prefix+'aliases').write(coreutils_aliases)
|
|
end
|
|
|
|
def caveats
|
|
unless use_default_names?; <<-EOS
|
|
All commands have been installed with the prefix 'g'.
|
|
|
|
A file that aliases these commands to their normal names is available
|
|
and may be used in your bashrc like:
|
|
|
|
source #{prefix}/aliases
|
|
|
|
But note that sourcing these aliases will cause them to be used instead
|
|
of Bash built-in commands, which may cause problems in shell scripts.
|
|
The Bash "printf" built-in behaves differently than gprintf, for instance,
|
|
which is known to cause problems with "bash-completion".
|
|
|
|
The man pages are still referenced with the g-prefix.
|
|
EOS
|
|
end
|
|
end
|
|
end
|