diff options
Diffstat (limited to 'Library/Homebrew/extend/os')
| -rw-r--r-- | Library/Homebrew/extend/os/linux/extend/pathname.rb | 19 | ||||
| -rw-r--r-- | Library/Homebrew/extend/os/mac/extend/pathname.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/extend/os/mac/hardware/cpu.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/extend/os/pathname.rb | 5 |
4 files changed, 29 insertions, 2 deletions
diff --git a/Library/Homebrew/extend/os/linux/extend/pathname.rb b/Library/Homebrew/extend/os/linux/extend/pathname.rb new file mode 100644 index 000000000..eb6ea409b --- /dev/null +++ b/Library/Homebrew/extend/os/linux/extend/pathname.rb @@ -0,0 +1,19 @@ +class Pathname + # @private + def elf? + # See: https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + read(4) == "\x7fELF" + end + + # @private + def dynamic_elf? + if which "readelf" + popen_read("readelf", "-l", to_path).include?(" DYNAMIC ") + elsif which "file" + !popen_read("file", "-L", "-b", to_path)[/dynamic|shared/].nil? + else + raise StandardError, "Neither `readelf` nor `file` is available "\ + "to determine whether '#{self}' is dynamically or statically linked." + end + end +end diff --git a/Library/Homebrew/extend/os/mac/extend/pathname.rb b/Library/Homebrew/extend/os/mac/extend/pathname.rb new file mode 100644 index 000000000..5fd59e1e7 --- /dev/null +++ b/Library/Homebrew/extend/os/mac/extend/pathname.rb @@ -0,0 +1,5 @@ +require "os/mac/mach" + +class Pathname + include MachOShim +end diff --git a/Library/Homebrew/extend/os/mac/hardware/cpu.rb b/Library/Homebrew/extend/os/mac/hardware/cpu.rb index b97c280cd..a216db6ae 100644 --- a/Library/Homebrew/extend/os/mac/hardware/cpu.rb +++ b/Library/Homebrew/extend/os/mac/hardware/cpu.rb @@ -1,5 +1,3 @@ -require "os/mac/pathname" - module Hardware class CPU class << self diff --git a/Library/Homebrew/extend/os/pathname.rb b/Library/Homebrew/extend/os/pathname.rb new file mode 100644 index 000000000..5e6edeb30 --- /dev/null +++ b/Library/Homebrew/extend/os/pathname.rb @@ -0,0 +1,5 @@ +if OS.mac? + require "extend/os/mac/extend/pathname" +elsif OS.linux? + require "extend/os/linux/extend/pathname" +end |
