mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					fc435a2541 | ||
| 
						 | 
					04394750e7 | ||
| 
						 | 
					e415a1351b | ||
| 
						 | 
					6ec907a915 | ||
| 
						 | 
					1f55f01fa9 | 
@@ -1,6 +1,6 @@
 | 
				
			|||||||
Gem::Specification.new do |s|
 | 
					Gem::Specification.new do |s|
 | 
				
			||||||
  s.name    = 'github-linguist'
 | 
					  s.name    = 'github-linguist'
 | 
				
			||||||
  s.version = '2.3.1'
 | 
					  s.version = '2.3.2'
 | 
				
			||||||
  s.summary = "GitHub Language detection"
 | 
					  s.summary = "GitHub Language detection"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  s.authors = "GitHub"
 | 
					  s.authors = "GitHub"
 | 
				
			||||||
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
 | 
				
			|||||||
  s.add_dependency 'escape_utils',    '~> 0.2.3'
 | 
					  s.add_dependency 'escape_utils',    '~> 0.2.3'
 | 
				
			||||||
  s.add_dependency 'mime-types',      '~> 1.19'
 | 
					  s.add_dependency 'mime-types',      '~> 1.19'
 | 
				
			||||||
  s.add_dependency 'pygments.rb',     '>= 0.2.13'
 | 
					  s.add_dependency 'pygments.rb',     '>= 0.2.13'
 | 
				
			||||||
 | 
					  s.add_development_dependency 'mocha'
 | 
				
			||||||
  s.add_development_dependency 'json'
 | 
					  s.add_development_dependency 'json'
 | 
				
			||||||
  s.add_development_dependency 'rake'
 | 
					  s.add_development_dependency 'rake'
 | 
				
			||||||
  s.add_development_dependency 'yajl-ruby'
 | 
					  s.add_development_dependency 'yajl-ruby'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -160,7 +160,7 @@ module Linguist
 | 
				
			|||||||
    #
 | 
					    #
 | 
				
			||||||
    # Return true or false
 | 
					    # Return true or false
 | 
				
			||||||
    def safe_to_colorize?
 | 
					    def safe_to_colorize?
 | 
				
			||||||
      text? && !large? && !high_ratio_of_long_lines?
 | 
					      !large? && text? && !high_ratio_of_long_lines?
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Internal: Does the blob have a ratio of long lines?
 | 
					    # Internal: Does the blob have a ratio of long lines?
 | 
				
			||||||
@@ -250,7 +250,9 @@ module Linguist
 | 
				
			|||||||
    #
 | 
					    #
 | 
				
			||||||
    # Return true or false
 | 
					    # Return true or false
 | 
				
			||||||
    def indexable?
 | 
					    def indexable?
 | 
				
			||||||
      if binary?
 | 
					      if size > 100 * 1024
 | 
				
			||||||
 | 
					        false
 | 
				
			||||||
 | 
					      elsif binary?
 | 
				
			||||||
        false
 | 
					        false
 | 
				
			||||||
      elsif extname == '.txt'
 | 
					      elsif extname == '.txt'
 | 
				
			||||||
        true
 | 
					        true
 | 
				
			||||||
@@ -260,8 +262,6 @@ module Linguist
 | 
				
			|||||||
        false
 | 
					        false
 | 
				
			||||||
      elsif generated?
 | 
					      elsif generated?
 | 
				
			||||||
        false
 | 
					        false
 | 
				
			||||||
      elsif size > 100 * 1024
 | 
					 | 
				
			||||||
        false
 | 
					 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        true
 | 
					        true
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -257,8 +257,8 @@
 | 
				
			|||||||
      ".gemrc"
 | 
					      ".gemrc"
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "tokens_total": 269398,
 | 
					  "tokens_total": 270906,
 | 
				
			||||||
  "languages_total": 274,
 | 
					  "languages_total": 275,
 | 
				
			||||||
  "tokens": {
 | 
					  "tokens": {
 | 
				
			||||||
    "Apex": {
 | 
					    "Apex": {
 | 
				
			||||||
      "global": 70,
 | 
					      "global": 70,
 | 
				
			||||||
@@ -25170,23 +25170,23 @@
 | 
				
			|||||||
      "/": 2
 | 
					      "/": 2
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "Shell": {
 | 
					    "Shell": {
 | 
				
			||||||
      "SHEBANG#!bash": 5,
 | 
					      "SHEBANG#!bash": 6,
 | 
				
			||||||
      "echo": 20,
 | 
					      "echo": 52,
 | 
				
			||||||
      "export": 6,
 | 
					      "export": 6,
 | 
				
			||||||
      "PATH": 5,
 | 
					      "PATH": 5,
 | 
				
			||||||
      "pkgname": 1,
 | 
					      "pkgname": 1,
 | 
				
			||||||
      "stud": 4,
 | 
					      "stud": 4,
 | 
				
			||||||
      "-": 42,
 | 
					      "-": 182,
 | 
				
			||||||
      "git": 9,
 | 
					      "git": 9,
 | 
				
			||||||
      "pkgver": 1,
 | 
					      "pkgver": 1,
 | 
				
			||||||
      "pkgrel": 1,
 | 
					      "pkgrel": 1,
 | 
				
			||||||
      "pkgdesc": 1,
 | 
					      "pkgdesc": 1,
 | 
				
			||||||
      "arch": 1,
 | 
					      "arch": 1,
 | 
				
			||||||
      "(": 16,
 | 
					      "(": 89,
 | 
				
			||||||
      "i686": 1,
 | 
					      "i686": 1,
 | 
				
			||||||
      "x86_64": 1,
 | 
					      "x86_64": 1,
 | 
				
			||||||
      ")": 19,
 | 
					      ")": 134,
 | 
				
			||||||
      "url": 1,
 | 
					      "url": 4,
 | 
				
			||||||
      "license": 1,
 | 
					      "license": 1,
 | 
				
			||||||
      "depends": 1,
 | 
					      "depends": 1,
 | 
				
			||||||
      "libev": 1,
 | 
					      "libev": 1,
 | 
				
			||||||
@@ -25198,26 +25198,26 @@
 | 
				
			|||||||
      "https": 1,
 | 
					      "https": 1,
 | 
				
			||||||
      "//github.com/bumptech/stud.git": 1,
 | 
					      "//github.com/bumptech/stud.git": 1,
 | 
				
			||||||
      "_gitname": 1,
 | 
					      "_gitname": 1,
 | 
				
			||||||
      "build": 1,
 | 
					      "build": 2,
 | 
				
			||||||
      "{": 5,
 | 
					      "{": 49,
 | 
				
			||||||
      "cd": 4,
 | 
					      "cd": 4,
 | 
				
			||||||
      "msg": 4,
 | 
					      "msg": 4,
 | 
				
			||||||
      "if": 15,
 | 
					      "if": 27,
 | 
				
			||||||
      "[": 24,
 | 
					      "[": 70,
 | 
				
			||||||
      "d": 4,
 | 
					      "d": 7,
 | 
				
			||||||
      "]": 24,
 | 
					      "]": 70,
 | 
				
			||||||
      ";": 16,
 | 
					      ";": 115,
 | 
				
			||||||
      "then": 17,
 | 
					      "then": 29,
 | 
				
			||||||
      "&&": 4,
 | 
					      "&&": 54,
 | 
				
			||||||
      "pull": 3,
 | 
					      "pull": 3,
 | 
				
			||||||
      "origin": 1,
 | 
					      "origin": 1,
 | 
				
			||||||
      "else": 6,
 | 
					      "else": 10,
 | 
				
			||||||
      "clone": 2,
 | 
					      "clone": 2,
 | 
				
			||||||
      "fi": 15,
 | 
					      "fi": 24,
 | 
				
			||||||
      "rm": 2,
 | 
					      "rm": 2,
 | 
				
			||||||
      "rf": 1,
 | 
					      "rf": 1,
 | 
				
			||||||
      "make": 2,
 | 
					      "make": 2,
 | 
				
			||||||
      "}": 5,
 | 
					      "}": 47,
 | 
				
			||||||
      "package": 1,
 | 
					      "package": 1,
 | 
				
			||||||
      "PREFIX": 1,
 | 
					      "PREFIX": 1,
 | 
				
			||||||
      "/usr": 1,
 | 
					      "/usr": 1,
 | 
				
			||||||
@@ -25225,21 +25225,21 @@
 | 
				
			|||||||
      "install": 2,
 | 
					      "install": 2,
 | 
				
			||||||
      "Dm755": 1,
 | 
					      "Dm755": 1,
 | 
				
			||||||
      "init.stud": 1,
 | 
					      "init.stud": 1,
 | 
				
			||||||
      "mkdir": 1,
 | 
					      "mkdir": 2,
 | 
				
			||||||
      "p": 1,
 | 
					      "p": 2,
 | 
				
			||||||
      "#": 9,
 | 
					      "#": 11,
 | 
				
			||||||
      "Bash": 1,
 | 
					      "Bash": 1,
 | 
				
			||||||
      "script": 1,
 | 
					      "script": 1,
 | 
				
			||||||
      "to": 4,
 | 
					      "to": 15,
 | 
				
			||||||
      "the": 3,
 | 
					      "the": 9,
 | 
				
			||||||
      "dotfile": 1,
 | 
					      "dotfile": 1,
 | 
				
			||||||
      "repository": 2,
 | 
					      "repository": 3,
 | 
				
			||||||
      "does": 1,
 | 
					      "does": 1,
 | 
				
			||||||
      "a": 2,
 | 
					      "a": 7,
 | 
				
			||||||
      "lot": 1,
 | 
					      "lot": 1,
 | 
				
			||||||
      "of": 1,
 | 
					      "of": 2,
 | 
				
			||||||
      "fun": 2,
 | 
					      "fun": 2,
 | 
				
			||||||
      "stuff": 2,
 | 
					      "stuff": 3,
 | 
				
			||||||
      "like": 1,
 | 
					      "like": 1,
 | 
				
			||||||
      "turning": 1,
 | 
					      "turning": 1,
 | 
				
			||||||
      "normal": 1,
 | 
					      "normal": 1,
 | 
				
			||||||
@@ -25248,11 +25248,11 @@
 | 
				
			|||||||
      ".bashrc": 1,
 | 
					      ".bashrc": 1,
 | 
				
			||||||
      "into": 1,
 | 
					      "into": 1,
 | 
				
			||||||
      "symlinks": 1,
 | 
					      "symlinks": 1,
 | 
				
			||||||
      "this": 1,
 | 
					      "this": 4,
 | 
				
			||||||
      "away": 1,
 | 
					      "away": 1,
 | 
				
			||||||
      "optionally": 1,
 | 
					      "optionally": 1,
 | 
				
			||||||
      "moving": 1,
 | 
					      "moving": 1,
 | 
				
			||||||
      "old": 1,
 | 
					      "old": 4,
 | 
				
			||||||
      "files": 1,
 | 
					      "files": 1,
 | 
				
			||||||
      "so": 1,
 | 
					      "so": 1,
 | 
				
			||||||
      "that": 1,
 | 
					      "that": 1,
 | 
				
			||||||
@@ -25260,7 +25260,7 @@
 | 
				
			|||||||
      "can": 1,
 | 
					      "can": 1,
 | 
				
			||||||
      "be": 1,
 | 
					      "be": 1,
 | 
				
			||||||
      "preserved": 1,
 | 
					      "preserved": 1,
 | 
				
			||||||
      "setting": 1,
 | 
					      "setting": 2,
 | 
				
			||||||
      "up": 1,
 | 
					      "up": 1,
 | 
				
			||||||
      "cron": 1,
 | 
					      "cron": 1,
 | 
				
			||||||
      "job": 1,
 | 
					      "job": 1,
 | 
				
			||||||
@@ -25271,38 +25271,38 @@
 | 
				
			|||||||
      "some": 1,
 | 
					      "some": 1,
 | 
				
			||||||
      "more": 1,
 | 
					      "more": 1,
 | 
				
			||||||
      "shopt": 1,
 | 
					      "shopt": 1,
 | 
				
			||||||
      "s": 2,
 | 
					      "s": 6,
 | 
				
			||||||
      "nocasematch": 1,
 | 
					      "nocasematch": 1,
 | 
				
			||||||
      "This": 1,
 | 
					      "This": 1,
 | 
				
			||||||
      "makes": 1,
 | 
					      "makes": 1,
 | 
				
			||||||
      "pattern": 1,
 | 
					      "pattern": 1,
 | 
				
			||||||
      "matching": 1,
 | 
					      "matching": 1,
 | 
				
			||||||
      "case": 2,
 | 
					      "case": 8,
 | 
				
			||||||
      "insensitive": 1,
 | 
					      "insensitive": 1,
 | 
				
			||||||
      "POSTFIX": 1,
 | 
					      "POSTFIX": 1,
 | 
				
			||||||
      "URL": 1,
 | 
					      "URL": 1,
 | 
				
			||||||
      "PUSHURL": 1,
 | 
					      "PUSHURL": 1,
 | 
				
			||||||
      "overwrite": 3,
 | 
					      "overwrite": 3,
 | 
				
			||||||
      "true": 1,
 | 
					      "true": 2,
 | 
				
			||||||
      "print_help": 2,
 | 
					      "print_help": 2,
 | 
				
			||||||
      "e": 2,
 | 
					      "e": 4,
 | 
				
			||||||
      "exit": 7,
 | 
					      "exit": 9,
 | 
				
			||||||
      "for": 3,
 | 
					      "for": 5,
 | 
				
			||||||
      "opt": 2,
 | 
					      "opt": 3,
 | 
				
			||||||
      "in": 4,
 | 
					      "in": 14,
 | 
				
			||||||
      "@": 1,
 | 
					      "@": 3,
 | 
				
			||||||
      "do": 3,
 | 
					      "do": 7,
 | 
				
			||||||
      "k": 1,
 | 
					      "k": 1,
 | 
				
			||||||
      "|": 2,
 | 
					      "|": 14,
 | 
				
			||||||
      "keep": 1,
 | 
					      "keep": 1,
 | 
				
			||||||
      "local": 3,
 | 
					      "local": 22,
 | 
				
			||||||
      "false": 2,
 | 
					      "false": 2,
 | 
				
			||||||
      "h": 1,
 | 
					      "h": 3,
 | 
				
			||||||
      "help": 1,
 | 
					      "help": 3,
 | 
				
			||||||
      "esac": 1,
 | 
					      "esac": 6,
 | 
				
			||||||
      "done": 3,
 | 
					      "done": 7,
 | 
				
			||||||
      "f": 3,
 | 
					      "f": 11,
 | 
				
			||||||
      ".*": 1,
 | 
					      ".*": 2,
 | 
				
			||||||
      "o": 3,
 | 
					      "o": 3,
 | 
				
			||||||
      "continue": 1,
 | 
					      "continue": 1,
 | 
				
			||||||
      "mv": 1,
 | 
					      "mv": 1,
 | 
				
			||||||
@@ -25314,35 +25314,296 @@
 | 
				
			|||||||
      ".jobs.cron": 1,
 | 
					      ".jobs.cron": 1,
 | 
				
			||||||
      "source": 3,
 | 
					      "source": 3,
 | 
				
			||||||
      "/.bashrc": 1,
 | 
					      "/.bashrc": 1,
 | 
				
			||||||
      "set": 2,
 | 
					      "set": 9,
 | 
				
			||||||
      "n": 2,
 | 
					      "n": 7,
 | 
				
			||||||
      "x": 1,
 | 
					      "x": 1,
 | 
				
			||||||
      "unset": 3,
 | 
					      "unset": 6,
 | 
				
			||||||
      "system": 1,
 | 
					      "system": 1,
 | 
				
			||||||
      "exec": 1,
 | 
					      "exec": 3,
 | 
				
			||||||
      "rbenv": 2,
 | 
					      "rbenv": 2,
 | 
				
			||||||
      "versions": 1,
 | 
					      "versions": 1,
 | 
				
			||||||
      "bare": 1,
 | 
					      "bare": 1,
 | 
				
			||||||
      "version": 1,
 | 
					      "version": 11,
 | 
				
			||||||
      "z": 3,
 | 
					      "z": 4,
 | 
				
			||||||
      "&": 4,
 | 
					      "&": 5,
 | 
				
			||||||
      "prefix": 1,
 | 
					      "prefix": 1,
 | 
				
			||||||
      "/dev/null": 2,
 | 
					      "/dev/null": 6,
 | 
				
			||||||
      "rvm_ignore_rvmrc": 1,
 | 
					      "rvm_ignore_rvmrc": 1,
 | 
				
			||||||
      "declare": 1,
 | 
					      "declare": 22,
 | 
				
			||||||
      "rvmrc": 3,
 | 
					      "rvmrc": 3,
 | 
				
			||||||
      "rvm_rvmrc_files": 3,
 | 
					      "rvm_rvmrc_files": 3,
 | 
				
			||||||
      "ef": 1,
 | 
					      "ef": 1,
 | 
				
			||||||
      "+": 1,
 | 
					      "+": 1,
 | 
				
			||||||
      "GREP_OPTIONS": 1,
 | 
					      "GREP_OPTIONS": 1,
 | 
				
			||||||
      "grep": 1,
 | 
					      "grep": 6,
 | 
				
			||||||
      "printf": 1,
 | 
					      "printf": 4,
 | 
				
			||||||
      "rvm_path": 4,
 | 
					      "rvm_path": 4,
 | 
				
			||||||
      "UID": 1,
 | 
					      "UID": 1,
 | 
				
			||||||
      "elif": 2,
 | 
					      "elif": 4,
 | 
				
			||||||
      "rvm_is_not_a_shell_function": 2,
 | 
					      "rvm_is_not_a_shell_function": 2,
 | 
				
			||||||
      "rvm_path/scripts": 1,
 | 
					      "rvm_path/scripts": 1,
 | 
				
			||||||
      "rvm": 1,
 | 
					      "rvm": 1,
 | 
				
			||||||
 | 
					      "r": 15,
 | 
				
			||||||
 | 
					      "sbt_release_version": 2,
 | 
				
			||||||
 | 
					      "sbt_snapshot_version": 2,
 | 
				
			||||||
 | 
					      "SNAPSHOT": 3,
 | 
				
			||||||
 | 
					      "sbt_jar": 3,
 | 
				
			||||||
 | 
					      "sbt_dir": 2,
 | 
				
			||||||
 | 
					      "sbt_create": 2,
 | 
				
			||||||
 | 
					      "sbt_snapshot": 1,
 | 
				
			||||||
 | 
					      "sbt_launch_dir": 3,
 | 
				
			||||||
 | 
					      "scala_version": 3,
 | 
				
			||||||
 | 
					      "java_home": 1,
 | 
				
			||||||
 | 
					      "sbt_explicit_version": 7,
 | 
				
			||||||
 | 
					      "verbose": 6,
 | 
				
			||||||
 | 
					      "debug": 11,
 | 
				
			||||||
 | 
					      "quiet": 6,
 | 
				
			||||||
 | 
					      "build_props_sbt": 3,
 | 
				
			||||||
 | 
					      "project/build.properties": 9,
 | 
				
			||||||
 | 
					      "versionLine": 2,
 | 
				
			||||||
 | 
					      "sbt.version": 3,
 | 
				
			||||||
 | 
					      "versionString": 3,
 | 
				
			||||||
 | 
					      "versionLine##sbt.version": 1,
 | 
				
			||||||
 | 
					      "update_build_props_sbt": 2,
 | 
				
			||||||
 | 
					      "ver": 5,
 | 
				
			||||||
 | 
					      "return": 3,
 | 
				
			||||||
 | 
					      "perl": 3,
 | 
				
			||||||
 | 
					      "pi": 1,
 | 
				
			||||||
 | 
					      "q": 4,
 | 
				
			||||||
 | 
					      "||": 12,
 | 
				
			||||||
 | 
					      "Updated": 1,
 | 
				
			||||||
 | 
					      "file": 3,
 | 
				
			||||||
 | 
					      "Previous": 1,
 | 
				
			||||||
 | 
					      "value": 1,
 | 
				
			||||||
 | 
					      "was": 1,
 | 
				
			||||||
 | 
					      "sbt_version": 8,
 | 
				
			||||||
 | 
					      "v": 5,
 | 
				
			||||||
 | 
					      "echoerr": 3,
 | 
				
			||||||
 | 
					      "vlog": 1,
 | 
				
			||||||
 | 
					      "dlog": 8,
 | 
				
			||||||
 | 
					      "get_script_path": 2,
 | 
				
			||||||
 | 
					      "path": 11,
 | 
				
			||||||
 | 
					      "L": 1,
 | 
				
			||||||
 | 
					      "target": 1,
 | 
				
			||||||
 | 
					      "readlink": 1,
 | 
				
			||||||
 | 
					      "get_mem_opts": 3,
 | 
				
			||||||
 | 
					      "mem": 4,
 | 
				
			||||||
 | 
					      "perm": 6,
 | 
				
			||||||
 | 
					      "/": 2,
 | 
				
			||||||
 | 
					      "<": 2,
 | 
				
			||||||
 | 
					      "codecache": 1,
 | 
				
			||||||
 | 
					      "die": 2,
 | 
				
			||||||
 | 
					      "make_url": 3,
 | 
				
			||||||
 | 
					      "groupid": 1,
 | 
				
			||||||
 | 
					      "category": 1,
 | 
				
			||||||
 | 
					      "default_jvm_opts": 1,
 | 
				
			||||||
 | 
					      "default_sbt_opts": 1,
 | 
				
			||||||
 | 
					      "default_sbt_mem": 2,
 | 
				
			||||||
 | 
					      "noshare_opts": 1,
 | 
				
			||||||
 | 
					      "sbt_opts_file": 1,
 | 
				
			||||||
 | 
					      "jvm_opts_file": 1,
 | 
				
			||||||
 | 
					      "latest_28": 1,
 | 
				
			||||||
 | 
					      "latest_29": 1,
 | 
				
			||||||
 | 
					      "latest_210": 1,
 | 
				
			||||||
 | 
					      "script_path": 1,
 | 
				
			||||||
 | 
					      "script_dir": 1,
 | 
				
			||||||
 | 
					      "script_name": 2,
 | 
				
			||||||
 | 
					      "java_cmd": 2,
 | 
				
			||||||
 | 
					      "java": 2,
 | 
				
			||||||
 | 
					      "sbt_mem": 5,
 | 
				
			||||||
 | 
					      "residual_args": 4,
 | 
				
			||||||
 | 
					      "java_args": 3,
 | 
				
			||||||
 | 
					      "scalac_args": 4,
 | 
				
			||||||
 | 
					      "sbt_commands": 2,
 | 
				
			||||||
 | 
					      "build_props_scala": 1,
 | 
				
			||||||
 | 
					      "build.scala.versions": 1,
 | 
				
			||||||
 | 
					      "versionLine##build.scala.versions": 1,
 | 
				
			||||||
 | 
					      "%": 3,
 | 
				
			||||||
 | 
					      "execRunner": 2,
 | 
				
			||||||
 | 
					      "arg": 3,
 | 
				
			||||||
 | 
					      "sbt_groupid": 3,
 | 
				
			||||||
 | 
					      "*": 11,
 | 
				
			||||||
 | 
					      "org.scala": 4,
 | 
				
			||||||
 | 
					      "tools.sbt": 3,
 | 
				
			||||||
 | 
					      "sbt": 18,
 | 
				
			||||||
 | 
					      "sbt_artifactory_list": 2,
 | 
				
			||||||
 | 
					      "version0": 2,
 | 
				
			||||||
 | 
					      "curl": 4,
 | 
				
			||||||
 | 
					      "list": 1,
 | 
				
			||||||
 | 
					      "only": 2,
 | 
				
			||||||
 | 
					      "F": 1,
 | 
				
			||||||
 | 
					      "pe": 1,
 | 
				
			||||||
 | 
					      "make_release_url": 2,
 | 
				
			||||||
 | 
					      "releases": 1,
 | 
				
			||||||
 | 
					      "make_snapshot_url": 2,
 | 
				
			||||||
 | 
					      "snapshots": 1,
 | 
				
			||||||
 | 
					      "head": 1,
 | 
				
			||||||
 | 
					      "jar_url": 1,
 | 
				
			||||||
 | 
					      "jar_file": 1,
 | 
				
			||||||
 | 
					      "download_url": 2,
 | 
				
			||||||
 | 
					      "jar": 3,
 | 
				
			||||||
 | 
					      "dirname": 1,
 | 
				
			||||||
 | 
					      "which": 4,
 | 
				
			||||||
 | 
					      "fail": 1,
 | 
				
			||||||
 | 
					      "silent": 1,
 | 
				
			||||||
 | 
					      "output": 1,
 | 
				
			||||||
 | 
					      "wget": 2,
 | 
				
			||||||
 | 
					      "O": 1,
 | 
				
			||||||
 | 
					      "acquire_sbt_jar": 1,
 | 
				
			||||||
 | 
					      "sbt_url": 1,
 | 
				
			||||||
 | 
					      "usage": 2,
 | 
				
			||||||
 | 
					      "cat": 3,
 | 
				
			||||||
 | 
					      "<<": 2,
 | 
				
			||||||
 | 
					      "EOM": 3,
 | 
				
			||||||
 | 
					      "Usage": 1,
 | 
				
			||||||
 | 
					      "options": 4,
 | 
				
			||||||
 | 
					      "print": 1,
 | 
				
			||||||
 | 
					      "message": 1,
 | 
				
			||||||
 | 
					      "runner": 1,
 | 
				
			||||||
 | 
					      "is": 5,
 | 
				
			||||||
 | 
					      "chattier": 1,
 | 
				
			||||||
 | 
					      "log": 2,
 | 
				
			||||||
 | 
					      "level": 2,
 | 
				
			||||||
 | 
					      "Debug": 1,
 | 
				
			||||||
 | 
					      "Error": 1,
 | 
				
			||||||
 | 
					      "no": 9,
 | 
				
			||||||
 | 
					      "colors": 2,
 | 
				
			||||||
 | 
					      "disable": 1,
 | 
				
			||||||
 | 
					      "ANSI": 1,
 | 
				
			||||||
 | 
					      "color": 1,
 | 
				
			||||||
 | 
					      "codes": 1,
 | 
				
			||||||
 | 
					      "create": 2,
 | 
				
			||||||
 | 
					      "start": 1,
 | 
				
			||||||
 | 
					      "even": 1,
 | 
				
			||||||
 | 
					      "current": 1,
 | 
				
			||||||
 | 
					      "directory": 3,
 | 
				
			||||||
 | 
					      "contains": 2,
 | 
				
			||||||
 | 
					      "project": 1,
 | 
				
			||||||
 | 
					      "dir": 3,
 | 
				
			||||||
 | 
					      "<path>": 3,
 | 
				
			||||||
 | 
					      "global": 1,
 | 
				
			||||||
 | 
					      "settings/plugins": 1,
 | 
				
			||||||
 | 
					      "default": 4,
 | 
				
			||||||
 | 
					      "/.sbt/": 1,
 | 
				
			||||||
 | 
					      "<version>": 1,
 | 
				
			||||||
 | 
					      "boot": 3,
 | 
				
			||||||
 | 
					      "shared": 1,
 | 
				
			||||||
 | 
					      "/.sbt/boot": 1,
 | 
				
			||||||
 | 
					      "series": 1,
 | 
				
			||||||
 | 
					      "ivy": 2,
 | 
				
			||||||
 | 
					      "Ivy": 1,
 | 
				
			||||||
 | 
					      "/.ivy2": 1,
 | 
				
			||||||
 | 
					      "<integer>": 1,
 | 
				
			||||||
 | 
					      "memory": 1,
 | 
				
			||||||
 | 
					      "share": 2,
 | 
				
			||||||
 | 
					      "use": 1,
 | 
				
			||||||
 | 
					      "all": 1,
 | 
				
			||||||
 | 
					      "caches": 1,
 | 
				
			||||||
 | 
					      "sharing": 1,
 | 
				
			||||||
 | 
					      "offline": 3,
 | 
				
			||||||
 | 
					      "put": 1,
 | 
				
			||||||
 | 
					      "mode": 2,
 | 
				
			||||||
 | 
					      "jvm": 2,
 | 
				
			||||||
 | 
					      "<port>": 1,
 | 
				
			||||||
 | 
					      "Turn": 1,
 | 
				
			||||||
 | 
					      "on": 2,
 | 
				
			||||||
 | 
					      "JVM": 1,
 | 
				
			||||||
 | 
					      "debugging": 1,
 | 
				
			||||||
 | 
					      "open": 1,
 | 
				
			||||||
 | 
					      "at": 1,
 | 
				
			||||||
 | 
					      "given": 2,
 | 
				
			||||||
 | 
					      "port.": 1,
 | 
				
			||||||
 | 
					      "batch": 2,
 | 
				
			||||||
 | 
					      "Disable": 1,
 | 
				
			||||||
 | 
					      "interactive": 1,
 | 
				
			||||||
 | 
					      "The": 1,
 | 
				
			||||||
 | 
					      "way": 1,
 | 
				
			||||||
 | 
					      "accomplish": 1,
 | 
				
			||||||
 | 
					      "pre": 1,
 | 
				
			||||||
 | 
					      "there": 2,
 | 
				
			||||||
 | 
					      "build.properties": 1,
 | 
				
			||||||
 | 
					      "an": 1,
 | 
				
			||||||
 | 
					      "property": 1,
 | 
				
			||||||
 | 
					      "update": 1,
 | 
				
			||||||
 | 
					      "disk.": 1,
 | 
				
			||||||
 | 
					      "That": 1,
 | 
				
			||||||
 | 
					      "scalacOptions": 3,
 | 
				
			||||||
 | 
					      "S": 2,
 | 
				
			||||||
 | 
					      "stripped": 1,
 | 
				
			||||||
 | 
					      "In": 1,
 | 
				
			||||||
 | 
					      "duplicated": 1,
 | 
				
			||||||
 | 
					      "or": 1,
 | 
				
			||||||
 | 
					      "conflicting": 1,
 | 
				
			||||||
 | 
					      "order": 1,
 | 
				
			||||||
 | 
					      "above": 1,
 | 
				
			||||||
 | 
					      "shows": 1,
 | 
				
			||||||
 | 
					      "precedence": 1,
 | 
				
			||||||
 | 
					      "JAVA_OPTS": 1,
 | 
				
			||||||
 | 
					      "lowest": 1,
 | 
				
			||||||
 | 
					      "command": 1,
 | 
				
			||||||
 | 
					      "line": 1,
 | 
				
			||||||
 | 
					      "highest.": 1,
 | 
				
			||||||
 | 
					      "addJava": 9,
 | 
				
			||||||
 | 
					      "addSbt": 12,
 | 
				
			||||||
 | 
					      "addScalac": 2,
 | 
				
			||||||
 | 
					      "addResidual": 2,
 | 
				
			||||||
 | 
					      "addResolver": 1,
 | 
				
			||||||
 | 
					      "addDebugger": 2,
 | 
				
			||||||
 | 
					      "get_jvm_opts": 2,
 | 
				
			||||||
 | 
					      "process_args": 2,
 | 
				
			||||||
 | 
					      "require_arg": 12,
 | 
				
			||||||
 | 
					      "type": 1,
 | 
				
			||||||
 | 
					      "while": 2,
 | 
				
			||||||
 | 
					      "gt": 1,
 | 
				
			||||||
 | 
					      "shift": 28,
 | 
				
			||||||
 | 
					      "integer": 1,
 | 
				
			||||||
 | 
					      "inc": 1,
 | 
				
			||||||
 | 
					      "port": 1,
 | 
				
			||||||
 | 
					      "snapshot": 1,
 | 
				
			||||||
 | 
					      "launch": 1,
 | 
				
			||||||
 | 
					      "scala": 3,
 | 
				
			||||||
 | 
					      "home": 2,
 | 
				
			||||||
 | 
					      "D*": 1,
 | 
				
			||||||
 | 
					      "J*": 1,
 | 
				
			||||||
 | 
					      "S*": 1,
 | 
				
			||||||
 | 
					      "sbtargs": 3,
 | 
				
			||||||
 | 
					      "IFS": 1,
 | 
				
			||||||
 | 
					      "read": 1,
 | 
				
			||||||
 | 
					      "<\"$sbt_opts_file\">": 1,
 | 
				
			||||||
 | 
					      "process": 1,
 | 
				
			||||||
 | 
					      "combined": 1,
 | 
				
			||||||
 | 
					      "args": 2,
 | 
				
			||||||
 | 
					      "reset": 1,
 | 
				
			||||||
 | 
					      "residuals": 1,
 | 
				
			||||||
 | 
					      "argumentCount=": 1,
 | 
				
			||||||
 | 
					      "we": 1,
 | 
				
			||||||
 | 
					      "were": 1,
 | 
				
			||||||
 | 
					      "any": 1,
 | 
				
			||||||
 | 
					      "opts": 1,
 | 
				
			||||||
 | 
					      "eq": 1,
 | 
				
			||||||
 | 
					      "0": 1,
 | 
				
			||||||
 | 
					      "ThisBuild": 1,
 | 
				
			||||||
 | 
					      "Update": 1,
 | 
				
			||||||
 | 
					      "properties": 1,
 | 
				
			||||||
 | 
					      "disk": 1,
 | 
				
			||||||
 | 
					      "explicit": 1,
 | 
				
			||||||
 | 
					      "gives": 1,
 | 
				
			||||||
 | 
					      "us": 1,
 | 
				
			||||||
 | 
					      "choice": 1,
 | 
				
			||||||
 | 
					      "Detected": 1,
 | 
				
			||||||
 | 
					      "Overriding": 1,
 | 
				
			||||||
 | 
					      "alert": 1,
 | 
				
			||||||
 | 
					      "them": 1,
 | 
				
			||||||
 | 
					      "here": 1,
 | 
				
			||||||
 | 
					      "argumentCount": 1,
 | 
				
			||||||
 | 
					      "./build.sbt": 1,
 | 
				
			||||||
 | 
					      "./project": 1,
 | 
				
			||||||
 | 
					      "pwd": 1,
 | 
				
			||||||
 | 
					      "doesn": 1,
 | 
				
			||||||
 | 
					      "t": 1,
 | 
				
			||||||
 | 
					      "understand": 1,
 | 
				
			||||||
 | 
					      "iflast": 1,
 | 
				
			||||||
 | 
					      "#residual_args": 1,
 | 
				
			||||||
      "SHEBANG#!sh": 2,
 | 
					      "SHEBANG#!sh": 2,
 | 
				
			||||||
      "SHEBANG#!zsh": 2
 | 
					      "SHEBANG#!zsh": 2
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -27452,7 +27713,7 @@
 | 
				
			|||||||
    "Scheme": 3478,
 | 
					    "Scheme": 3478,
 | 
				
			||||||
    "Scilab": 69,
 | 
					    "Scilab": 69,
 | 
				
			||||||
    "SCSS": 39,
 | 
					    "SCSS": 39,
 | 
				
			||||||
    "Shell": 500,
 | 
					    "Shell": 2008,
 | 
				
			||||||
    "Standard ML": 243,
 | 
					    "Standard ML": 243,
 | 
				
			||||||
    "SuperCollider": 135,
 | 
					    "SuperCollider": 135,
 | 
				
			||||||
    "Tea": 3,
 | 
					    "Tea": 3,
 | 
				
			||||||
@@ -27522,7 +27783,7 @@
 | 
				
			|||||||
    "Scheme": 1,
 | 
					    "Scheme": 1,
 | 
				
			||||||
    "Scilab": 3,
 | 
					    "Scilab": 3,
 | 
				
			||||||
    "SCSS": 1,
 | 
					    "SCSS": 1,
 | 
				
			||||||
    "Shell": 15,
 | 
					    "Shell": 16,
 | 
				
			||||||
    "Standard ML": 2,
 | 
					    "Standard ML": 2,
 | 
				
			||||||
    "SuperCollider": 1,
 | 
					    "SuperCollider": 1,
 | 
				
			||||||
    "Tea": 1,
 | 
					    "Tea": 1,
 | 
				
			||||||
@@ -27537,5 +27798,5 @@
 | 
				
			|||||||
    "XSLT": 1,
 | 
					    "XSLT": 1,
 | 
				
			||||||
    "YAML": 1
 | 
					    "YAML": 1
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "md5": "ca1d189ca79aa9c52370da78f2c2b4dd"
 | 
					  "md5": "73937d71c79ba8a2f9e085431017cb2d"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										432
									
								
								samples/Shell/sbt.script!
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										432
									
								
								samples/Shell/sbt.script!
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,432 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# A more capable sbt runner, coincidentally also called sbt.
 | 
				
			||||||
 | 
					# Author: Paul Phillips <paulp@typesafe.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# todo - make this dynamic
 | 
				
			||||||
 | 
					declare -r sbt_release_version=0.11.3
 | 
				
			||||||
 | 
					declare -r sbt_snapshot_version=0.13.0-SNAPSHOT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unset sbt_jar sbt_dir sbt_create sbt_snapshot sbt_launch_dir
 | 
				
			||||||
 | 
					unset scala_version java_home sbt_explicit_version
 | 
				
			||||||
 | 
					unset verbose debug quiet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_props_sbt () {
 | 
				
			||||||
 | 
					  if [[ -f project/build.properties ]]; then
 | 
				
			||||||
 | 
					    versionLine=$(grep ^sbt.version project/build.properties)
 | 
				
			||||||
 | 
					    versionString=${versionLine##sbt.version=}
 | 
				
			||||||
 | 
					    echo "$versionString"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					update_build_props_sbt () {
 | 
				
			||||||
 | 
					  local ver="$1"
 | 
				
			||||||
 | 
					  local old=$(build_props_sbt)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ $ver == $old ]]; then
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  elif [[ -f project/build.properties ]]; then
 | 
				
			||||||
 | 
					    perl -pi -e "s/^sbt\.version=.*\$/sbt.version=${ver}/" project/build.properties
 | 
				
			||||||
 | 
					    grep -q '^sbt.version=' project/build.properties || echo "sbt.version=${ver}" >> project/build.properties
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo !!!
 | 
				
			||||||
 | 
					    echo !!! Updated file project/build.properties setting sbt.version to: $ver
 | 
				
			||||||
 | 
					    echo !!! Previous value was: $old
 | 
				
			||||||
 | 
					    echo !!!
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sbt_version () {
 | 
				
			||||||
 | 
					  if [[ -n $sbt_explicit_version ]]; then
 | 
				
			||||||
 | 
					    echo $sbt_explicit_version
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    local v=$(build_props_sbt)
 | 
				
			||||||
 | 
					    if [[ -n $v ]]; then
 | 
				
			||||||
 | 
					      echo $v
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      echo $sbt_release_version
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echoerr () {
 | 
				
			||||||
 | 
					  echo 1>&2 "$@"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					vlog () {
 | 
				
			||||||
 | 
					  [[ $verbose || $debug ]] && echoerr "$@"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					dlog () {
 | 
				
			||||||
 | 
					  [[ $debug ]] && echoerr "$@"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# this seems to cover the bases on OSX, and someone will
 | 
				
			||||||
 | 
					# have to tell me about the others.
 | 
				
			||||||
 | 
					get_script_path () {
 | 
				
			||||||
 | 
					  local path="$1"
 | 
				
			||||||
 | 
					  [[ -L "$path" ]] || { echo "$path" ; return; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local target=$(readlink "$path")
 | 
				
			||||||
 | 
					  if [[ "${target:0:1}" == "/" ]]; then
 | 
				
			||||||
 | 
					    echo "$target"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    echo "$(dirname $path)/$target"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# a ham-fisted attempt to move some memory settings in concert
 | 
				
			||||||
 | 
					# so they need not be dicked around with individually.
 | 
				
			||||||
 | 
					get_mem_opts () {
 | 
				
			||||||
 | 
					  local mem=${1:-1536}
 | 
				
			||||||
 | 
					  local perm=$(( $mem / 4 ))
 | 
				
			||||||
 | 
					  (( $perm > 256 )) || perm=256
 | 
				
			||||||
 | 
					  (( $perm < 1024 )) || perm=1024
 | 
				
			||||||
 | 
					  local codecache=$(( $perm / 2 ))
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  echo "-Xms${mem}m -Xmx${mem}m -XX:MaxPermSize=${perm}m -XX:ReservedCodeCacheSize=${codecache}m"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					die() {
 | 
				
			||||||
 | 
					  echo "Aborting: $@"
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					make_url () {
 | 
				
			||||||
 | 
					  groupid="$1"
 | 
				
			||||||
 | 
					  category="$2"
 | 
				
			||||||
 | 
					  version="$3"
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  echo "http://typesafe.artifactoryonline.com/typesafe/ivy-$category/$groupid/sbt-launch/$version/sbt-launch.jar"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare -r default_jvm_opts="-Dfile.encoding=UTF8"
 | 
				
			||||||
 | 
					declare -r default_sbt_opts="-XX:+CMSClassUnloadingEnabled"
 | 
				
			||||||
 | 
					declare -r default_sbt_mem=1536
 | 
				
			||||||
 | 
					declare -r noshare_opts="-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy"
 | 
				
			||||||
 | 
					declare -r sbt_opts_file=".sbtopts"
 | 
				
			||||||
 | 
					declare -r jvm_opts_file=".jvmopts"
 | 
				
			||||||
 | 
					declare -r latest_28="2.8.2"
 | 
				
			||||||
 | 
					declare -r latest_29="2.9.1"
 | 
				
			||||||
 | 
					declare -r latest_210="2.10.0-SNAPSHOT"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare -r script_path=$(get_script_path "$BASH_SOURCE")
 | 
				
			||||||
 | 
					declare -r script_dir="$(dirname $script_path)"
 | 
				
			||||||
 | 
					declare -r script_name="$(basename $script_path)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# some non-read-onlies set with defaults
 | 
				
			||||||
 | 
					declare java_cmd=java
 | 
				
			||||||
 | 
					declare sbt_launch_dir="$script_dir/.lib"
 | 
				
			||||||
 | 
					declare sbt_mem=$default_sbt_mem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# pull -J and -D options to give to java.
 | 
				
			||||||
 | 
					declare -a residual_args
 | 
				
			||||||
 | 
					declare -a java_args
 | 
				
			||||||
 | 
					declare -a scalac_args
 | 
				
			||||||
 | 
					declare -a sbt_commands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_props_scala () {
 | 
				
			||||||
 | 
					  if [[ -f project/build.properties ]]; then
 | 
				
			||||||
 | 
					    versionLine=$(grep ^build.scala.versions project/build.properties)
 | 
				
			||||||
 | 
					    versionString=${versionLine##build.scala.versions=}
 | 
				
			||||||
 | 
					    echo ${versionString%% .*}
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					execRunner () {
 | 
				
			||||||
 | 
					  # print the arguments one to a line, quoting any containing spaces
 | 
				
			||||||
 | 
					  [[ $verbose || $debug ]] && echo "# Executing command line:" && {
 | 
				
			||||||
 | 
					    for arg; do
 | 
				
			||||||
 | 
					      if printf "%s\n" "$arg" | grep -q ' '; then
 | 
				
			||||||
 | 
					        printf "\"%s\"\n" "$arg"
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        printf "%s\n" "$arg"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    echo ""
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exec "$@"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sbt_groupid () {
 | 
				
			||||||
 | 
					  case $(sbt_version) in
 | 
				
			||||||
 | 
					        0.7.*) echo org.scala-tools.sbt ;;
 | 
				
			||||||
 | 
					       0.10.*) echo org.scala-tools.sbt ;;
 | 
				
			||||||
 | 
					    0.11.[12]) echo org.scala-tools.sbt ;;
 | 
				
			||||||
 | 
					            *) echo org.scala-sbt ;;
 | 
				
			||||||
 | 
					  esac
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sbt_artifactory_list () {
 | 
				
			||||||
 | 
					  local version0=$(sbt_version)
 | 
				
			||||||
 | 
					  local version=${version0%-SNAPSHOT}
 | 
				
			||||||
 | 
					  local url="http://typesafe.artifactoryonline.com/typesafe/ivy-snapshots/$(sbt_groupid)/sbt-launch/"
 | 
				
			||||||
 | 
					  dlog "Looking for snapshot list at: $url "
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  curl -s --list-only "$url" | \
 | 
				
			||||||
 | 
					    grep -F $version | \
 | 
				
			||||||
 | 
					    perl -e 'print reverse <>' | \
 | 
				
			||||||
 | 
					    perl -pe 's#^<a href="([^"/]+).*#$1#;'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					make_release_url () {
 | 
				
			||||||
 | 
					  make_url $(sbt_groupid) releases $(sbt_version)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# argument is e.g. 0.13.0-SNAPSHOT
 | 
				
			||||||
 | 
					# finds the actual version (with the build id) at artifactory
 | 
				
			||||||
 | 
					make_snapshot_url () {
 | 
				
			||||||
 | 
					  for ver in $(sbt_artifactory_list); do
 | 
				
			||||||
 | 
					    local url=$(make_url $(sbt_groupid) snapshots $ver)
 | 
				
			||||||
 | 
					    dlog "Testing $url"
 | 
				
			||||||
 | 
					    curl -s --head "$url" >/dev/null
 | 
				
			||||||
 | 
					    dlog "curl returned: $?"
 | 
				
			||||||
 | 
					    echo "$url"
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jar_url () {
 | 
				
			||||||
 | 
					  case $(sbt_version) in
 | 
				
			||||||
 | 
					             0.7.*) echo "http://simple-build-tool.googlecode.com/files/sbt-launch-0.7.7.jar" ;;
 | 
				
			||||||
 | 
					        *-SNAPSHOT) make_snapshot_url ;;
 | 
				
			||||||
 | 
					                 *) make_release_url ;;
 | 
				
			||||||
 | 
					  esac
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jar_file () {
 | 
				
			||||||
 | 
					  echo "$sbt_launch_dir/$1/sbt-launch.jar"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					download_url () {
 | 
				
			||||||
 | 
					  local url="$1"
 | 
				
			||||||
 | 
					  local jar="$2"
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  echo "Downloading sbt launcher $(sbt_version):"
 | 
				
			||||||
 | 
					  echo "  From  $url"
 | 
				
			||||||
 | 
					  echo "    To  $jar"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mkdir -p $(dirname "$jar") && {
 | 
				
			||||||
 | 
					    if which curl >/dev/null; then
 | 
				
			||||||
 | 
					      curl --fail --silent "$url" --output "$jar"
 | 
				
			||||||
 | 
					    elif which wget >/dev/null; then
 | 
				
			||||||
 | 
					      wget --quiet -O "$jar" "$url"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  } && [[ -f "$jar" ]]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					acquire_sbt_jar () {
 | 
				
			||||||
 | 
					  sbt_url="$(jar_url)"
 | 
				
			||||||
 | 
					  sbt_jar="$(jar_file $(sbt_version))"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  [[ -f "$sbt_jar" ]] || download_url "$sbt_url" "$sbt_jar"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					usage () {
 | 
				
			||||||
 | 
					  cat <<EOM
 | 
				
			||||||
 | 
					Usage: $script_name [options]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -h | -help         print this message
 | 
				
			||||||
 | 
					  -v | -verbose      this runner is chattier
 | 
				
			||||||
 | 
					  -d | -debug        set sbt log level to Debug
 | 
				
			||||||
 | 
					  -q | -quiet        set sbt log level to Error
 | 
				
			||||||
 | 
					  -no-colors         disable ANSI color codes
 | 
				
			||||||
 | 
					  -sbt-create        start sbt even if current directory contains no sbt project
 | 
				
			||||||
 | 
					  -sbt-dir   <path>  path to global settings/plugins directory (default: ~/.sbt/<version>)
 | 
				
			||||||
 | 
					  -sbt-boot  <path>  path to shared boot directory (default: ~/.sbt/boot in 0.11 series)
 | 
				
			||||||
 | 
					  -ivy       <path>  path to local Ivy repository (default: ~/.ivy2)
 | 
				
			||||||
 | 
					  -mem    <integer>  set memory options (default: $sbt_mem, which is
 | 
				
			||||||
 | 
					                       $(get_mem_opts $sbt_mem) )
 | 
				
			||||||
 | 
					  -no-share          use all local caches; no sharing
 | 
				
			||||||
 | 
					  -offline           put sbt in offline mode
 | 
				
			||||||
 | 
					  -jvm-debug <port>  Turn on JVM debugging, open at the given port.
 | 
				
			||||||
 | 
					  -batch             Disable interactive mode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # sbt version (default: from project/build.properties if present, else latest release)
 | 
				
			||||||
 | 
					  !!! The only way to accomplish this pre-0.12.0 if there is a build.properties file which
 | 
				
			||||||
 | 
					  !!! contains an sbt.version property is to update the file on disk.  That's what this does.
 | 
				
			||||||
 | 
					  -sbt-version  <version>   use the specified version of sbt 
 | 
				
			||||||
 | 
					  -sbt-jar      <path>      use the specified jar as the sbt launcher
 | 
				
			||||||
 | 
					  -sbt-snapshot             use a snapshot version of sbt
 | 
				
			||||||
 | 
					  -sbt-launch-dir <path>    directory to hold sbt launchers (default: $sbt_launch_dir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # scala version (default: as chosen by sbt)
 | 
				
			||||||
 | 
					  -28                       use $latest_28
 | 
				
			||||||
 | 
					  -29                       use $latest_29
 | 
				
			||||||
 | 
					  -210                      use $latest_210
 | 
				
			||||||
 | 
					  -scala-home <path>        use the scala build at the specified directory
 | 
				
			||||||
 | 
					  -scala-version <version>  use the specified version of scala
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # java version (default: java from PATH, currently $(java -version |& grep version))
 | 
				
			||||||
 | 
					  -java-home <path>         alternate JAVA_HOME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # jvm options and output control
 | 
				
			||||||
 | 
					  JAVA_OPTS     environment variable holding jvm args, if unset uses "$default_jvm_opts"
 | 
				
			||||||
 | 
					  SBT_OPTS      environment variable holding jvm args, if unset uses "$default_sbt_opts"
 | 
				
			||||||
 | 
					  .jvmopts      if file is in sbt root, it is prepended to the args given to the jvm
 | 
				
			||||||
 | 
					  .sbtopts      if file is in sbt root, it is prepended to the args given to **sbt**
 | 
				
			||||||
 | 
					  -Dkey=val     pass -Dkey=val directly to the jvm
 | 
				
			||||||
 | 
					  -J-X          pass option -X directly to the jvm (-J is stripped)
 | 
				
			||||||
 | 
					  -S-X          add -X to sbt's scalacOptions (-S is stripped)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In the case of duplicated or conflicting options, the order above
 | 
				
			||||||
 | 
					shows precedence: JAVA_OPTS lowest, command line options highest.
 | 
				
			||||||
 | 
					EOM
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					addJava () {
 | 
				
			||||||
 | 
					  dlog "[addJava] arg = '$1'"
 | 
				
			||||||
 | 
					  java_args=( "${java_args[@]}" "$1" )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					addSbt () {
 | 
				
			||||||
 | 
					  dlog "[addSbt] arg = '$1'"
 | 
				
			||||||
 | 
					  sbt_commands=( "${sbt_commands[@]}" "$1" )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					addScalac () {
 | 
				
			||||||
 | 
					  dlog "[addScalac] arg = '$1'"
 | 
				
			||||||
 | 
					  scalac_args=( "${scalac_args[@]}" "$1" )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					addResidual () {
 | 
				
			||||||
 | 
					  dlog "[residual] arg = '$1'"
 | 
				
			||||||
 | 
					  residual_args=( "${residual_args[@]}" "$1" )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					addResolver () {
 | 
				
			||||||
 | 
					  addSbt "set resolvers in ThisBuild += $1"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					addDebugger () {
 | 
				
			||||||
 | 
					  addJava "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					get_jvm_opts () {
 | 
				
			||||||
 | 
					  # echo "${JAVA_OPTS:-$default_jvm_opts}"
 | 
				
			||||||
 | 
					  # echo "${SBT_OPTS:-$default_sbt_opts}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  [[ -f "$jvm_opts_file" ]] && cat "$jvm_opts_file"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					process_args ()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  require_arg () {
 | 
				
			||||||
 | 
					    local type="$1"
 | 
				
			||||||
 | 
					    local opt="$2"
 | 
				
			||||||
 | 
					    local arg="$3"
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if [[ -z "$arg" ]] || [[ "${arg:0:1}" == "-" ]]; then
 | 
				
			||||||
 | 
					      die "$opt requires <$type> argument"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  while [[ $# -gt 0 ]]; do
 | 
				
			||||||
 | 
					    case "$1" in
 | 
				
			||||||
 | 
					       -h|-help) usage; exit 1 ;;
 | 
				
			||||||
 | 
					    -v|-verbose) verbose=1 && shift ;;
 | 
				
			||||||
 | 
					      -d|-debug) debug=1 && shift ;;
 | 
				
			||||||
 | 
					      -q|-quiet) quiet=1 && shift ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					           -ivy) require_arg path "$1" "$2" && addJava "-Dsbt.ivy.home=$2" && shift 2 ;;
 | 
				
			||||||
 | 
					           -mem) require_arg integer "$1" "$2" && sbt_mem="$2" && shift 2 ;;
 | 
				
			||||||
 | 
					     -no-colors) addJava "-Dsbt.log.noformat=true" && shift ;;
 | 
				
			||||||
 | 
					      -no-share) addJava "$noshare_opts" && shift ;;
 | 
				
			||||||
 | 
					      -sbt-boot) require_arg path "$1" "$2" && addJava "-Dsbt.boot.directory=$2" && shift 2 ;;
 | 
				
			||||||
 | 
					       -sbt-dir) require_arg path "$1" "$2" && sbt_dir="$2" && shift 2 ;;
 | 
				
			||||||
 | 
					     -debug-inc) addJava "-Dxsbt.inc.debug=true" && shift ;;
 | 
				
			||||||
 | 
					       -offline) addSbt "set offline := true" && shift ;;
 | 
				
			||||||
 | 
					     -jvm-debug) require_arg port "$1" "$2" && addDebugger $2 && shift 2 ;;
 | 
				
			||||||
 | 
					         -batch) exec </dev/null && shift ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -sbt-create) sbt_create=true && shift ;;
 | 
				
			||||||
 | 
					  -sbt-snapshot) sbt_explicit_version=$sbt_snapshot_version && shift ;;
 | 
				
			||||||
 | 
					       -sbt-jar) require_arg path "$1" "$2" && sbt_jar="$2" && shift 2 ;;
 | 
				
			||||||
 | 
					   -sbt-version) require_arg version "$1" "$2" && sbt_explicit_version="$2" && shift 2 ;;
 | 
				
			||||||
 | 
					-sbt-launch-dir) require_arg path "$1" "$2" && sbt_launch_dir="$2" && shift 2 ;;
 | 
				
			||||||
 | 
					 -scala-version) require_arg version "$1" "$2" && addSbt "set scalaVersion := \"$2\"" && shift 2 ;;
 | 
				
			||||||
 | 
					    -scala-home) require_arg path "$1" "$2" && addSbt "set scalaHome in ThisBuild := Some(file(\"$2\"))" && shift 2 ;;
 | 
				
			||||||
 | 
					     -java-home) require_arg path "$1" "$2" && java_cmd="$2/bin/java" && shift 2 ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            -D*) addJava "$1" && shift ;;
 | 
				
			||||||
 | 
					            -J*) addJava "${1:2}" && shift ;;
 | 
				
			||||||
 | 
					            -S*) addScalac "${1:2}" && shift ;;
 | 
				
			||||||
 | 
					            -28) addSbt "++ $latest_28" && shift ;;
 | 
				
			||||||
 | 
					            -29) addSbt "++ $latest_29" && shift ;;
 | 
				
			||||||
 | 
					           -210) addSbt "++ $latest_210" && shift ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              *) addResidual "$1" && shift ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  [[ $debug ]] && {
 | 
				
			||||||
 | 
					    case $(sbt_version) in
 | 
				
			||||||
 | 
					     0.7.*) addSbt "debug" ;; 
 | 
				
			||||||
 | 
					         *) addSbt "set logLevel in Global := Level.Debug" ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  [[ $quiet ]] && {
 | 
				
			||||||
 | 
					    case $(sbt_version) in
 | 
				
			||||||
 | 
					     0.7.*) ;; 
 | 
				
			||||||
 | 
					         *) addSbt "set logLevel in Global := Level.Error" ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# if .sbtopts exists, prepend its contents to $@ so it can be processed by this runner
 | 
				
			||||||
 | 
					[[ -f "$sbt_opts_file" ]] && {
 | 
				
			||||||
 | 
					  sbtargs=()
 | 
				
			||||||
 | 
					  while IFS= read -r arg; do
 | 
				
			||||||
 | 
					    sbtargs=( "${sbtargs[@]}" "$arg" )
 | 
				
			||||||
 | 
					  done <"$sbt_opts_file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  set -- "${sbtargs[@]}" "$@"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# process the combined args, then reset "$@" to the residuals
 | 
				
			||||||
 | 
					process_args "$@"
 | 
				
			||||||
 | 
					set -- "${residual_args[@]}"
 | 
				
			||||||
 | 
					argumentCount=$#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# set scalacOptions if we were given any -S opts
 | 
				
			||||||
 | 
					[[ ${#scalac_args[@]} -eq 0 ]] || addSbt "set scalacOptions in ThisBuild += \"${scalac_args[@]}\""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Update build.properties no disk to set explicit version - sbt gives us no choice
 | 
				
			||||||
 | 
					[[ -n "$sbt_explicit_version" ]] && update_build_props_sbt "$sbt_explicit_version"
 | 
				
			||||||
 | 
					echo "Detected sbt version $(sbt_version)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[ -n "$scala_version" ]] && echo "Overriding scala version to $scala_version"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# no args - alert them there's stuff in here
 | 
				
			||||||
 | 
					(( $argumentCount > 0 )) || echo "Starting $script_name: invoke with -help for other options"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# verify this is an sbt dir or -create was given
 | 
				
			||||||
 | 
					[[ -f ./build.sbt || -d ./project || -n "$sbt_create" ]] || {
 | 
				
			||||||
 | 
					  cat <<EOM
 | 
				
			||||||
 | 
					$(pwd) doesn't appear to be an sbt project.
 | 
				
			||||||
 | 
					If you want to start sbt anyway, run:
 | 
				
			||||||
 | 
					  $0 -sbt-create
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EOM
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# pick up completion if present; todo
 | 
				
			||||||
 | 
					[[ -f .sbt_completion.sh ]] && source .sbt_completion.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# no jar? download it.
 | 
				
			||||||
 | 
					[[ -f "$sbt_jar" ]] || acquire_sbt_jar || {
 | 
				
			||||||
 | 
					  # still no jar? uh-oh.
 | 
				
			||||||
 | 
					  echo "Download failed. Obtain the jar manually and place it at $sbt_jar"
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[ -n "$sbt_dir" ]] || {
 | 
				
			||||||
 | 
					  sbt_dir=~/.sbt/$(sbt_version)
 | 
				
			||||||
 | 
					  addJava "-Dsbt.global.base=$sbt_dir"
 | 
				
			||||||
 | 
					  echo "Using $sbt_dir as sbt dir, -sbt-dir to override."
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# since sbt 0.7 doesn't understand iflast
 | 
				
			||||||
 | 
					(( ${#residual_args[@]} == 0 )) && residual_args=( "shell" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# run sbt
 | 
				
			||||||
 | 
					execRunner "$java_cmd" \
 | 
				
			||||||
 | 
					  $(get_mem_opts $sbt_mem) \
 | 
				
			||||||
 | 
					  $(get_jvm_opts) \
 | 
				
			||||||
 | 
					  ${java_args[@]} \
 | 
				
			||||||
 | 
					  -jar "$sbt_jar" \
 | 
				
			||||||
 | 
					  "${sbt_commands[@]}" \
 | 
				
			||||||
 | 
					  "${residual_args[@]}"
 | 
				
			||||||
@@ -2,6 +2,7 @@ require 'linguist/file_blob'
 | 
				
			|||||||
require 'linguist/samples'
 | 
					require 'linguist/samples'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require 'test/unit'
 | 
					require 'test/unit'
 | 
				
			||||||
 | 
					require 'mocha'
 | 
				
			||||||
require 'mime/types'
 | 
					require 'mime/types'
 | 
				
			||||||
require 'pygments'
 | 
					require 'pygments'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -261,6 +262,12 @@ class TestBlob < Test::Unit::TestCase
 | 
				
			|||||||
    assert !blob("Text/dump.sql").indexable?
 | 
					    assert !blob("Text/dump.sql").indexable?
 | 
				
			||||||
    assert !blob("Binary/github.po").indexable?
 | 
					    assert !blob("Binary/github.po").indexable?
 | 
				
			||||||
    assert !blob("Binary/linguist.gem").indexable?
 | 
					    assert !blob("Binary/linguist.gem").indexable?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # large binary blobs should fail on size check first, not call 
 | 
				
			||||||
 | 
					    # into charlock_holmes and alloc big buffers for testing encoding
 | 
				
			||||||
 | 
					    b = blob("Binary/octocat.ai")
 | 
				
			||||||
 | 
					    b.expects(:binary?).never
 | 
				
			||||||
 | 
					    assert !b.indexable?
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def test_language
 | 
					  def test_language
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user