diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb index c164d768..d7c70b4f 100644 --- a/lib/linguist/blob_helper.rb +++ b/lib/linguist/blob_helper.rb @@ -146,7 +146,8 @@ module Linguist # # Return true or false def shebang_extname? - extname.empty? + extname.empty? && + (mode.to_i(8) & 05) == 05 end MEGABYTE = 1024 * 1024 diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb index 7dbecb42..7e7f1acd 100644 --- a/lib/linguist/file_blob.rb +++ b/lib/linguist/file_blob.rb @@ -32,6 +32,13 @@ module Linguist # Returns a String attr_reader :name + # Public: Read file permissions + # + # Returns a String like '100644' + def mode + File.stat(@path).mode.to_s(8) + end + # Public: Read file contents. # # Returns a String. diff --git a/test/fixtures/script.bash b/test/fixtures/script.bash old mode 100644 new mode 100755 diff --git a/test/fixtures/script.foo b/test/fixtures/script.foo old mode 100644 new mode 100755 diff --git a/test/fixtures/script.groovy b/test/fixtures/script.groovy old mode 100644 new mode 100755 diff --git a/test/fixtures/script.js b/test/fixtures/script.js old mode 100644 new mode 100755 diff --git a/test/fixtures/script.mrb b/test/fixtures/script.mrb old mode 100644 new mode 100755 diff --git a/test/fixtures/script.nu b/test/fixtures/script.nu old mode 100644 new mode 100755 diff --git a/test/fixtures/script.pl b/test/fixtures/script.pl old mode 100644 new mode 100755 diff --git a/test/fixtures/script.py b/test/fixtures/script.py old mode 100644 new mode 100755 diff --git a/test/fixtures/script.rake b/test/fixtures/script.rake old mode 100644 new mode 100755 diff --git a/test/fixtures/script.rb b/test/fixtures/script.rb old mode 100644 new mode 100755 diff --git a/test/fixtures/script.rkt b/test/fixtures/script.rkt old mode 100644 new mode 100755 diff --git a/test/fixtures/script.scala b/test/fixtures/script.scala old mode 100644 new mode 100755 diff --git a/test/fixtures/script.sh b/test/fixtures/script.sh old mode 100644 new mode 100755 diff --git a/test/fixtures/script.zsh b/test/fixtures/script.zsh old mode 100644 new mode 100755