mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Compare commits
	
		
			54 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 2696a9c5e7 | ||
|  | 7c170972a0 | ||
|  | d00dfd82c1 | ||
|  | 9003139119 | ||
|  | 36e867ec76 | ||
|  | cf4813979c | ||
|  | 7e12c3eff1 | ||
|  | 281cc985bf | ||
|  | dcc2be0781 | ||
|  | 161d076bfd | ||
|  | 09fbcc9a72 | ||
|  | ee2b92cf82 | ||
|  | 720914b290 | ||
|  | 16f8e54ed7 | ||
|  | 50ecb63058 | ||
|  | 586650f01c | ||
|  | ae753e6e88 | ||
|  | 04a2845e91 | ||
|  | acb20d95ca | ||
|  | d3ebe1844d | ||
|  | fc8492e8f7 | ||
|  | ff5ffd0482 | ||
|  | 50db6d0150 | ||
|  | 2e0b854428 | ||
|  | 1dfb44cff7 | ||
|  | 0a8fad2040 | ||
|  | 9b97d3ac8a | ||
|  | 26e78c0c1b | ||
|  | b036e8d3c2 | ||
|  | f84a904ad8 | ||
|  | b1684037d6 | ||
|  | 1c85d0b38a | ||
|  | ec3434cf1d | ||
|  | 0e20f6d454 | ||
|  | d92d208a45 | ||
|  | b798e28bfb | ||
|  | ebd6077cd7 | ||
|  | 9e9500dfa9 | ||
|  | 04cc100fba | ||
|  | 31e33f99f2 | ||
|  | 7c51b90586 | ||
|  | 2b36f73da6 | ||
|  | d96dd473b8 | ||
|  | f9066ffb7b | ||
|  | 945941d529 | ||
|  | 10e875e899 | ||
|  | d24e5c938e | ||
|  | aa069a336f | ||
|  | 662fc2ee9d | ||
|  | 567cd6ef68 | ||
|  | 887a050db9 | ||
|  | bda895eaae | ||
|  | 2e49c06f47 | ||
|  | da6cf8dbb4 | 
							
								
								
									
										4
									
								
								Rakefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Rakefile
									
									
									
									
									
								
							| @@ -3,9 +3,7 @@ require 'rake/testtask' | |||||||
|  |  | ||||||
| task :default => :test | task :default => :test | ||||||
|  |  | ||||||
| Rake::TestTask.new do |t| | Rake::TestTask.new | ||||||
|   t.warning = true |  | ||||||
| end |  | ||||||
|  |  | ||||||
| task :samples do | task :samples do | ||||||
|   require 'linguist/samples' |   require 'linguist/samples' | ||||||
|   | |||||||
| @@ -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.3' |   s.version = '2.4.0' | ||||||
|   s.summary = "GitHub Language detection" |   s.summary = "GitHub Language detection" | ||||||
|  |  | ||||||
|   s.authors = "GitHub" |   s.authors = "GitHub" | ||||||
| @@ -11,7 +11,7 @@ Gem::Specification.new do |s| | |||||||
|   s.add_dependency 'charlock_holmes', '~> 0.6.6' |   s.add_dependency 'charlock_holmes', '~> 0.6.6' | ||||||
|   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.3.0' | ||||||
|   s.add_development_dependency 'mocha' |   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' | ||||||
|   | |||||||
| @@ -204,7 +204,31 @@ module Linguist | |||||||
|     # |     # | ||||||
|     # Returns an Array of lines |     # Returns an Array of lines | ||||||
|     def lines |     def lines | ||||||
|       @lines ||= (viewable? && data) ? data.split("\n", -1) : [] |       @lines ||= | ||||||
|  |         if viewable? && data | ||||||
|  |           data.split(line_split_character, -1) | ||||||
|  |         else | ||||||
|  |           [] | ||||||
|  |         end | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     # Character used to split lines. This is almost always "\n" except when Mac | ||||||
|  |     # Format is detected in which case it's "\r". | ||||||
|  |     # | ||||||
|  |     # Returns a split pattern string. | ||||||
|  |     def line_split_character | ||||||
|  |       @line_split_character ||= (mac_format?? "\r" : "\n") | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     # Public: Is the data in ** Mac Format **. This format uses \r (0x0d) characters | ||||||
|  |     # for line ends and does not include a \n (0x0a). | ||||||
|  |     # | ||||||
|  |     # Returns true when mac format is detected. | ||||||
|  |     def mac_format? | ||||||
|  |       return if !viewable? | ||||||
|  |       if pos = data[0, 4096].index("\r") | ||||||
|  |         data[pos + 1] != ?\n | ||||||
|  |       end | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     # Public: Get number of lines of code |     # Public: Get number of lines of code | ||||||
| @@ -278,7 +302,7 @@ module Linguist | |||||||
|       if defined?(@data) && @data.is_a?(String) |       if defined?(@data) && @data.is_a?(String) | ||||||
|         data = @data |         data = @data | ||||||
|       else |       else | ||||||
|         data = lambda { binary_mime_type? ? "" : self.data } |         data = lambda { (binary_mime_type? || binary?) ? "" : self.data } | ||||||
|       end |       end | ||||||
|  |  | ||||||
|       @language = Language.detect(name.to_s, data, mode) |       @language = Language.detect(name.to_s, data, mode) | ||||||
|   | |||||||
| @@ -84,7 +84,9 @@ module Linguist | |||||||
|  |  | ||||||
|       if possible_languages.length > 1 |       if possible_languages.length > 1 | ||||||
|         data = data.call() if data.respond_to?(:call) |         data = data.call() if data.respond_to?(:call) | ||||||
|         if result = Classifier.classify(Samples::DATA, data, possible_languages.map(&:name)).first |         if data.nil? || data == "" | ||||||
|  |           nil | ||||||
|  |         elsif result = Classifier.classify(Samples::DATA, data, possible_languages.map(&:name)).first | ||||||
|           Language[result[0]] |           Language[result[0]] | ||||||
|         end |         end | ||||||
|       else |       else | ||||||
| @@ -220,6 +222,7 @@ module Linguist | |||||||
|         raise(ArgumentError, "#{@name} is missing lexer") |         raise(ArgumentError, "#{@name} is missing lexer") | ||||||
|  |  | ||||||
|       @ace_mode = attributes[:ace_mode] |       @ace_mode = attributes[:ace_mode] | ||||||
|  |       @wrap = attributes[:wrap] || false | ||||||
|  |  | ||||||
|       # Set legacy search term |       # Set legacy search term | ||||||
|       @search_term = attributes[:search_term] || default_alias_name |       @search_term = attributes[:search_term] || default_alias_name | ||||||
| @@ -310,6 +313,11 @@ module Linguist | |||||||
|     # Returns a String name or nil |     # Returns a String name or nil | ||||||
|     attr_reader :ace_mode |     attr_reader :ace_mode | ||||||
|  |  | ||||||
|  |     # Public: Should language lines be wrapped | ||||||
|  |     # | ||||||
|  |     # Returns true or false | ||||||
|  |     attr_reader :wrap | ||||||
|  |  | ||||||
|     # Public: Get extensions |     # Public: Get extensions | ||||||
|     # |     # | ||||||
|     # Examples |     # Examples | ||||||
| @@ -460,6 +468,7 @@ module Linguist | |||||||
|       :aliases           => options['aliases'], |       :aliases           => options['aliases'], | ||||||
|       :lexer             => options['lexer'], |       :lexer             => options['lexer'], | ||||||
|       :ace_mode          => options['ace_mode'], |       :ace_mode          => options['ace_mode'], | ||||||
|  |       :wrap              => options['wrap'], | ||||||
|       :group_name        => options['group'], |       :group_name        => options['group'], | ||||||
|       :searchable        => options.key?('searchable') ? options['searchable'] : true, |       :searchable        => options.key?('searchable') ? options['searchable'] : true, | ||||||
|       :search_term       => options['search_term'], |       :search_term       => options['search_term'], | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ | |||||||
| # aliases           - An Array of additional aliases (implicitly | # aliases           - An Array of additional aliases (implicitly | ||||||
| #                     includes name.downcase) | #                     includes name.downcase) | ||||||
| # ace_mode          - A String name of Ace Mode (if available) | # ace_mode          - A String name of Ace Mode (if available) | ||||||
|  | # wrap              - Boolean wrap to enable line wrapping (default: false) | ||||||
| # extension         - An Array of associated extensions | # extension         - An Array of associated extensions | ||||||
| # primary_extension - A String for the main extension associated with | # primary_extension - A String for the main extension associated with | ||||||
| #                     the language. Must be unique. Used when a Language is picked | #                     the language. Must be unique. Used when a Language is picked | ||||||
| @@ -62,6 +63,12 @@ Ada: | |||||||
|   - .adb |   - .adb | ||||||
|   - .ads |   - .ads | ||||||
|  |  | ||||||
|  | ApacheConf: | ||||||
|  |   type: markup | ||||||
|  |   aliases: | ||||||
|  |   - apache | ||||||
|  |   primary_extension: .apacheconf | ||||||
|  |  | ||||||
| Apex: | Apex: | ||||||
|   type: programming |   type: programming | ||||||
|   lexer: Text only |   lexer: Text only | ||||||
| @@ -179,8 +186,10 @@ C++: | |||||||
|   - cpp |   - cpp | ||||||
|   primary_extension: .cpp |   primary_extension: .cpp | ||||||
|   extensions: |   extensions: | ||||||
|  |   - .C | ||||||
|   - .c++ |   - .c++ | ||||||
|   - .cxx |   - .cxx | ||||||
|  |   - .H | ||||||
|   - .h++ |   - .h++ | ||||||
|   - .hh |   - .hh | ||||||
|   - .hxx |   - .hxx | ||||||
| @@ -243,6 +252,7 @@ CoffeeScript: | |||||||
|   color: "#244776" |   color: "#244776" | ||||||
|   aliases: |   aliases: | ||||||
|   - coffee |   - coffee | ||||||
|  |   - coffee-script | ||||||
|   primary_extension: .coffee |   primary_extension: .coffee | ||||||
|   extensions: |   extensions: | ||||||
|   - ._coffee |   - ._coffee | ||||||
| @@ -367,6 +377,14 @@ Ecere Projects: | |||||||
|   extensions: |   extensions: | ||||||
|   - .epj |   - .epj | ||||||
|  |  | ||||||
|  | Ecl: | ||||||
|  |   type: programming | ||||||
|  |   color: "#8a1267" | ||||||
|  |   primary_extension: .ecl | ||||||
|  |   lexer: ECL | ||||||
|  |   extensions: | ||||||
|  |   - .eclxml | ||||||
|  |  | ||||||
| Eiffel: | Eiffel: | ||||||
|   type: programming |   type: programming | ||||||
|   lexer: Text only |   lexer: Text only | ||||||
| @@ -383,6 +401,12 @@ Elixir: | |||||||
|   - .ex |   - .ex | ||||||
|   - .exs |   - .exs | ||||||
|  |  | ||||||
|  | Elm: | ||||||
|  |   type: programming | ||||||
|  |   lexer: Haskell | ||||||
|  |   group: Haskell | ||||||
|  |   primary_extension: .elm | ||||||
|  |  | ||||||
| Emacs Lisp: | Emacs Lisp: | ||||||
|   type: programming |   type: programming | ||||||
|   lexer: Scheme |   lexer: Scheme | ||||||
| @@ -536,6 +560,8 @@ Groovy Server Pages: | |||||||
| HTML: | HTML: | ||||||
|   type: markup |   type: markup | ||||||
|   ace_mode: html |   ace_mode: html | ||||||
|  |   aliases: | ||||||
|  |   - xhtml | ||||||
|   primary_extension: .html |   primary_extension: .html | ||||||
|   extensions: |   extensions: | ||||||
|   - .htm |   - .htm | ||||||
| @@ -554,6 +580,8 @@ HTML+ERB: | |||||||
|   type: markup |   type: markup | ||||||
|   group: HTML |   group: HTML | ||||||
|   lexer: RHTML |   lexer: RHTML | ||||||
|  |   aliases: | ||||||
|  |   - erb | ||||||
|   primary_extension: .erb |   primary_extension: .erb | ||||||
|   extensions: |   extensions: | ||||||
|   - .erb |   - .erb | ||||||
| @@ -566,22 +594,20 @@ HTML+PHP: | |||||||
|   extensions: |   extensions: | ||||||
|   - .phtml |   - .phtml | ||||||
|  |  | ||||||
| HaXe: | HTTP: | ||||||
|   type: programming |   type: data | ||||||
|   lexer: haXe |   primary_extension: .http | ||||||
|   ace_mode: haxe |  | ||||||
|   color: "#346d51" |  | ||||||
|   primary_extension: .hx |  | ||||||
|   extensions: |  | ||||||
|   - .hx |  | ||||||
|   - .hxml |  | ||||||
|   - .mtt |  | ||||||
|  |  | ||||||
| Haml: | Haml: | ||||||
|   group: HTML |   group: HTML | ||||||
|   type: markup |   type: markup | ||||||
|   primary_extension: .haml |   primary_extension: .haml | ||||||
|  |  | ||||||
|  | Handlebars: | ||||||
|  |   type: markup | ||||||
|  |   lexer: Text only | ||||||
|  |   primary_extension: .handlebars | ||||||
|  |  | ||||||
| Haskell: | Haskell: | ||||||
|   type: programming |   type: programming | ||||||
|   color: "#29b544" |   color: "#29b544" | ||||||
| @@ -590,6 +616,15 @@ Haskell: | |||||||
|   - .hs |   - .hs | ||||||
|   - .hsc |   - .hsc | ||||||
|  |  | ||||||
|  | Haxe: | ||||||
|  |   type: programming | ||||||
|  |   lexer: haXe | ||||||
|  |   ace_mode: haxe | ||||||
|  |   color: "#346d51" | ||||||
|  |   primary_extension: .hx | ||||||
|  |   extensions: | ||||||
|  |   - .hxsl | ||||||
|  |  | ||||||
| INI: | INI: | ||||||
|   type: data |   type: data | ||||||
|   extensions: |   extensions: | ||||||
| @@ -714,6 +749,8 @@ Lua: | |||||||
|   - .nse |   - .nse | ||||||
|  |  | ||||||
| Makefile: | Makefile: | ||||||
|  |   aliases: | ||||||
|  |   - make | ||||||
|   extensions: |   extensions: | ||||||
|   - .mak |   - .mak | ||||||
|   - .mk |   - .mk | ||||||
| @@ -733,6 +770,7 @@ Markdown: | |||||||
|   type: markup |   type: markup | ||||||
|   lexer: Text only |   lexer: Text only | ||||||
|   ace_mode: markdown |   ace_mode: markdown | ||||||
|  |   wrap: true | ||||||
|   primary_extension: .md |   primary_extension: .md | ||||||
|   extensions: |   extensions: | ||||||
|   - .markdown |   - .markdown | ||||||
| @@ -788,6 +826,11 @@ Nemerle: | |||||||
|   color: "#0d3c6e" |   color: "#0d3c6e" | ||||||
|   primary_extension: .n |   primary_extension: .n | ||||||
|  |  | ||||||
|  | Nginx: | ||||||
|  |   type: markup | ||||||
|  |   lexer: Nginx configuration file | ||||||
|  |   primary_extension: .nginxconf | ||||||
|  |  | ||||||
| Nimrod: | Nimrod: | ||||||
|   type: programming |   type: programming | ||||||
|   color: "#37775b" |   color: "#37775b" | ||||||
| @@ -833,6 +876,9 @@ ObjDump: | |||||||
| Objective-C: | Objective-C: | ||||||
|   type: programming |   type: programming | ||||||
|   color: "#438eff" |   color: "#438eff" | ||||||
|  |   aliases: | ||||||
|  |   - obj-c | ||||||
|  |   - objc | ||||||
|   primary_extension: .m |   primary_extension: .m | ||||||
|   extensions: |   extensions: | ||||||
|   - .mm |   - .mm | ||||||
| @@ -840,6 +886,8 @@ Objective-C: | |||||||
| Objective-J: | Objective-J: | ||||||
|   type: programming |   type: programming | ||||||
|   color: "#ff0c5a" |   color: "#ff0c5a" | ||||||
|  |   aliases: | ||||||
|  |   - obj-j | ||||||
|   primary_extension: .j |   primary_extension: .j | ||||||
|   extensions: |   extensions: | ||||||
|   - .j |   - .j | ||||||
| @@ -1114,10 +1162,6 @@ Shell: | |||||||
|   - bash |   - bash | ||||||
|   - zsh |   - zsh | ||||||
|   primary_extension: .sh |   primary_extension: .sh | ||||||
|   filenames: |  | ||||||
|   - .zsh |  | ||||||
|   - bashrc |  | ||||||
|   - zshrc |  | ||||||
|  |  | ||||||
| Smalltalk: | Smalltalk: | ||||||
|   type: programming |   type: programming | ||||||
| @@ -1162,6 +1206,8 @@ Tcsh: | |||||||
| TeX: | TeX: | ||||||
|   type: markup |   type: markup | ||||||
|   ace_mode: latex |   ace_mode: latex | ||||||
|  |   aliases: | ||||||
|  |   - latex | ||||||
|   primary_extension: .tex |   primary_extension: .tex | ||||||
|   extensions: |   extensions: | ||||||
|   - .aux |   - .aux | ||||||
| @@ -1180,6 +1226,7 @@ Textile: | |||||||
|   type: markup |   type: markup | ||||||
|   lexer: Text only |   lexer: Text only | ||||||
|   ace_mode: textile |   ace_mode: textile | ||||||
|  |   wrap: true | ||||||
|   primary_extension: .textile |   primary_extension: .textile | ||||||
|   extensions: |   extensions: | ||||||
|   - .textile |   - .textile | ||||||
| @@ -1250,6 +1297,11 @@ Visual Basic: | |||||||
| XML: | XML: | ||||||
|   type: markup |   type: markup | ||||||
|   ace_mode: xml |   ace_mode: xml | ||||||
|  |   aliases: | ||||||
|  |   - rss | ||||||
|  |   - xsd | ||||||
|  |   - xsl | ||||||
|  |   - wsdl | ||||||
|   primary_extension: .xml |   primary_extension: .xml | ||||||
|   extensions: |   extensions: | ||||||
|   - .glade |   - .glade | ||||||
| @@ -1295,6 +1347,8 @@ XSLT: | |||||||
|  |  | ||||||
| YAML: | YAML: | ||||||
|   type: markup |   type: markup | ||||||
|  |   aliases: | ||||||
|  |   - yml | ||||||
|   primary_extension: .yml |   primary_extension: .yml | ||||||
|   extensions: |   extensions: | ||||||
|   - .yaml |   - .yaml | ||||||
| @@ -1324,6 +1378,7 @@ ooc: | |||||||
|  |  | ||||||
| reStructuredText: | reStructuredText: | ||||||
|   type: markup |   type: markup | ||||||
|  |   wrap: true | ||||||
|   search_term: rst |   search_term: rst | ||||||
|   aliases: |   aliases: | ||||||
|   - rst |   - rst | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -76,12 +76,14 @@ module Linguist | |||||||
|           db['extnames'][language_name] ||= [] |           db['extnames'][language_name] ||= [] | ||||||
|           if !db['extnames'][language_name].include?(sample[:extname]) |           if !db['extnames'][language_name].include?(sample[:extname]) | ||||||
|             db['extnames'][language_name] << sample[:extname] |             db['extnames'][language_name] << sample[:extname] | ||||||
|  |             db['extnames'][language_name].sort! | ||||||
|           end |           end | ||||||
|         end |         end | ||||||
|  |  | ||||||
|         if sample[:filename] |         if sample[:filename] | ||||||
|           db['filenames'][language_name] ||= [] |           db['filenames'][language_name] ||= [] | ||||||
|           db['filenames'][language_name] << sample[:filename] |           db['filenames'][language_name] << sample[:filename] | ||||||
|  |           db['filenames'][language_name].sort! | ||||||
|         end |         end | ||||||
|  |  | ||||||
|         data = File.read(sample[:path]) |         data = File.read(sample[:path]) | ||||||
|   | |||||||
| @@ -138,7 +138,7 @@ module Linguist | |||||||
|           s.scan(/\s+/) |           s.scan(/\s+/) | ||||||
|           script = s.scan(/\S+/) |           script = s.scan(/\S+/) | ||||||
|         end |         end | ||||||
|         script = script[/[^\d]+/, 0] |         script = script[/[^\d]+/, 0] if script | ||||||
|         return script |         return script | ||||||
|       end |       end | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										26
									
								
								samples/ApacheConf/filenames/.htaccess
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								samples/ApacheConf/filenames/.htaccess
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | ServerSignature Off | ||||||
|  | RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR] | ||||||
|  | RewriteCond %{THE_REQUEST} (\\r|\\n|%0A|%0D) [NC,OR] | ||||||
|  |  | ||||||
|  | RewriteCond %{HTTP_REFERER} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC,OR] | ||||||
|  | RewriteCond %{HTTP_COOKIE} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC,OR] | ||||||
|  | RewriteCond %{REQUEST_URI} ^/(,|;|:|<|>|”>|”<|/|\\\.\.\\).{0,9999} [NC,OR] | ||||||
|  |  | ||||||
|  | RewriteCond %{HTTP_USER_AGENT} ^$ [OR] | ||||||
|  | RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget) [NC,OR] | ||||||
|  | RewriteCond %{HTTP_USER_AGENT} (winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR] | ||||||
|  | RewriteCond %{HTTP_USER_AGENT} (libwww-perl|curl|wget|python|nikto|scan) [NC,OR] | ||||||
|  | RewriteCond %{HTTP_USER_AGENT} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC,OR] | ||||||
|  |  | ||||||
|  | #Block mySQL injects | ||||||
|  | RewriteCond %{QUERY_STRING} (;|<|>|’|”|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark) [NC,OR] | ||||||
|  |  | ||||||
|  | RewriteCond %{QUERY_STRING} \.\./\.\. [OR] | ||||||
|  |  | ||||||
|  | RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR] | ||||||
|  | RewriteCond %{QUERY_STRING} \.[a-z0-9] [NC,OR] | ||||||
|  | RewriteCond %{QUERY_STRING} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC] | ||||||
|  | # Note: The final RewriteCond must NOT use the [OR] flag. | ||||||
|  |  | ||||||
|  | # Return 403 Forbidden error. | ||||||
|  | RewriteRule .* index.php [F] | ||||||
							
								
								
									
										470
									
								
								samples/ApacheConf/filenames/apache2.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										470
									
								
								samples/ApacheConf/filenames/apache2.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,470 @@ | |||||||
|  | # This is the main Apache HTTP server configuration file.  It contains the | ||||||
|  | # configuration directives that give the server its instructions. | ||||||
|  | # See <URL:http://httpd.apache.org/docs/2.2> for detailed information. | ||||||
|  | # In particular, see | ||||||
|  | # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html> | ||||||
|  | # for a discussion of each configuration directive. | ||||||
|  | # | ||||||
|  | # Do NOT simply read the instructions in here without understanding | ||||||
|  | # what they do.  They're here only as hints or reminders.  If you are unsure | ||||||
|  | # consult the online docs. You have been warned. | ||||||
|  | # | ||||||
|  | # Configuration and logfile names: If the filenames you specify for many | ||||||
|  | # of the server's control files begin with "/" (or "drive:/" for Win32), the | ||||||
|  | # server will use that explicit path.  If the filenames do *not* begin | ||||||
|  | # with "/", the value of ServerRoot is prepended -- so "/var/log/apache2/foo.log" | ||||||
|  | # with ServerRoot set to "" will be interpreted by the | ||||||
|  | # server as "//var/log/apache2/foo.log". | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ServerRoot: The top of the directory tree under which the server's | ||||||
|  | # configuration, error, and log files are kept. | ||||||
|  | # | ||||||
|  | # Do not add a slash at the end of the directory path.  If you point | ||||||
|  | # ServerRoot at a non-local disk, be sure to point the LockFile directive | ||||||
|  | # at a local disk.  If you wish to share the same ServerRoot for multiple | ||||||
|  | # httpd daemons, you will need to change at least LockFile and PidFile. | ||||||
|  | # | ||||||
|  | ServerRoot "" | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Listen: Allows you to bind Apache to specific IP addresses and/or | ||||||
|  | # ports, instead of the default. See also the <VirtualHost> | ||||||
|  | # directive. | ||||||
|  | # | ||||||
|  | # Change this to Listen on specific IP addresses as shown below to | ||||||
|  | # prevent Apache from glomming onto all bound IP addresses. | ||||||
|  | # | ||||||
|  | #Listen 12.34.56.78:80 | ||||||
|  | Listen 80 | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Dynamic Shared Object (DSO) Support | ||||||
|  | # | ||||||
|  | # To be able to use the functionality of a module which was built as a DSO you | ||||||
|  | # have to place corresponding `LoadModule' lines at this location so the | ||||||
|  | # directives contained in it are actually available _before_ they are used. | ||||||
|  | # Statically compiled modules (those listed by `httpd -l') do not need | ||||||
|  | # to be loaded here. | ||||||
|  | # | ||||||
|  | # Example: | ||||||
|  | # LoadModule foo_module modules/mod_foo.so | ||||||
|  | # | ||||||
|  | LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so | ||||||
|  | LoadModule authn_dbm_module /usr/lib/apache2/modules/mod_authn_dbm.so | ||||||
|  | LoadModule authn_anon_module /usr/lib/apache2/modules/mod_authn_anon.so | ||||||
|  | LoadModule authn_dbd_module /usr/lib/apache2/modules/mod_authn_dbd.so | ||||||
|  | LoadModule authn_default_module /usr/lib/apache2/modules/mod_authn_default.so | ||||||
|  | LoadModule authn_alias_module /usr/lib/apache2/modules/mod_authn_alias.so | ||||||
|  | LoadModule authz_host_module /usr/lib/apache2/modules/mod_authz_host.so | ||||||
|  | LoadModule authz_groupfile_module /usr/lib/apache2/modules/mod_authz_groupfile.so | ||||||
|  | LoadModule authz_user_module /usr/lib/apache2/modules/mod_authz_user.so | ||||||
|  | LoadModule authz_dbm_module /usr/lib/apache2/modules/mod_authz_dbm.so | ||||||
|  | LoadModule authz_owner_module /usr/lib/apache2/modules/mod_authz_owner.so | ||||||
|  | LoadModule authnz_ldap_module /usr/lib/apache2/modules/mod_authnz_ldap.so | ||||||
|  | LoadModule authz_default_module /usr/lib/apache2/modules/mod_authz_default.so | ||||||
|  | LoadModule auth_basic_module /usr/lib/apache2/modules/mod_auth_basic.so | ||||||
|  | LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so | ||||||
|  | LoadModule file_cache_module /usr/lib/apache2/modules/mod_file_cache.so | ||||||
|  | LoadModule cache_module /usr/lib/apache2/modules/mod_cache.so | ||||||
|  | LoadModule disk_cache_module /usr/lib/apache2/modules/mod_disk_cache.so | ||||||
|  | LoadModule mem_cache_module /usr/lib/apache2/modules/mod_mem_cache.so | ||||||
|  | LoadModule dbd_module /usr/lib/apache2/modules/mod_dbd.so | ||||||
|  | LoadModule dumpio_module /usr/lib/apache2/modules/mod_dumpio.so | ||||||
|  | LoadModule ext_filter_module /usr/lib/apache2/modules/mod_ext_filter.so | ||||||
|  | LoadModule include_module /usr/lib/apache2/modules/mod_include.so | ||||||
|  | LoadModule filter_module /usr/lib/apache2/modules/mod_filter.so | ||||||
|  | LoadModule charset_lite_module /usr/lib/apache2/modules/mod_charset_lite.so | ||||||
|  | LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so | ||||||
|  | LoadModule ldap_module /usr/lib/apache2/modules/mod_ldap.so | ||||||
|  | LoadModule log_forensic_module /usr/lib/apache2/modules/mod_log_forensic.so | ||||||
|  | LoadModule env_module /usr/lib/apache2/modules/mod_env.so | ||||||
|  | LoadModule mime_magic_module /usr/lib/apache2/modules/mod_mime_magic.so | ||||||
|  | LoadModule cern_meta_module /usr/lib/apache2/modules/mod_cern_meta.so | ||||||
|  | LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so | ||||||
|  | LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so | ||||||
|  | LoadModule ident_module /usr/lib/apache2/modules/mod_ident.so | ||||||
|  | LoadModule usertrack_module /usr/lib/apache2/modules/mod_usertrack.so | ||||||
|  | LoadModule unique_id_module /usr/lib/apache2/modules/mod_unique_id.so | ||||||
|  | LoadModule setenvif_module /usr/lib/apache2/modules/mod_setenvif.so | ||||||
|  | LoadModule version_module /usr/lib/apache2/modules/mod_version.so | ||||||
|  | LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so | ||||||
|  | LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so | ||||||
|  | LoadModule proxy_ftp_module /usr/lib/apache2/modules/mod_proxy_ftp.so | ||||||
|  | LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so | ||||||
|  | LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so | ||||||
|  | LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so | ||||||
|  | LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so | ||||||
|  | LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so | ||||||
|  | LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so | ||||||
|  | LoadModule status_module /usr/lib/apache2/modules/mod_status.so | ||||||
|  | LoadModule autoindex_module /usr/lib/apache2/modules/mod_autoindex.so | ||||||
|  | LoadModule asis_module /usr/lib/apache2/modules/mod_asis.so | ||||||
|  | LoadModule info_module /usr/lib/apache2/modules/mod_info.so | ||||||
|  | LoadModule suexec_module /usr/lib/apache2/modules/mod_suexec.so | ||||||
|  | LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so | ||||||
|  | LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so | ||||||
|  | LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so | ||||||
|  | LoadModule dav_lock_module /usr/lib/apache2/modules/mod_dav_lock.so | ||||||
|  | LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so | ||||||
|  | LoadModule negotiation_module /usr/lib/apache2/modules/mod_negotiation.so | ||||||
|  | LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so | ||||||
|  | LoadModule imagemap_module /usr/lib/apache2/modules/mod_imagemap.so | ||||||
|  | LoadModule actions_module /usr/lib/apache2/modules/mod_actions.so | ||||||
|  | LoadModule speling_module /usr/lib/apache2/modules/mod_speling.so | ||||||
|  | LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so | ||||||
|  | LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so | ||||||
|  | LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so | ||||||
|  |  | ||||||
|  | <IfModule !mpm_netware_module> | ||||||
|  | # | ||||||
|  | # If you wish httpd to run as a different user or group, you must run | ||||||
|  | # httpd as root initially and it will switch. | ||||||
|  | # | ||||||
|  | # User/Group: The name (or #number) of the user/group to run httpd as. | ||||||
|  | # It is usually good practice to create a dedicated user and group for | ||||||
|  | # running httpd, as with most system services. | ||||||
|  | # | ||||||
|  | User daemon | ||||||
|  | Group daemon | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # 'Main' server configuration | ||||||
|  | # | ||||||
|  | # The directives in this section set up the values used by the 'main' | ||||||
|  | # server, which responds to any requests that aren't handled by a | ||||||
|  | # <VirtualHost> definition.  These values also provide defaults for | ||||||
|  | # any <VirtualHost> containers you may define later in the file. | ||||||
|  | # | ||||||
|  | # All of these directives may appear inside <VirtualHost> containers, | ||||||
|  | # in which case these default settings will be overridden for the | ||||||
|  | # virtual host being defined. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ServerAdmin: Your address, where problems with the server should be | ||||||
|  | # e-mailed.  This address appears on some server-generated pages, such | ||||||
|  | # as error documents.  e.g. admin@your-domain.com | ||||||
|  | # | ||||||
|  | ServerAdmin you@example.com | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ServerName gives the name and port that the server uses to identify itself. | ||||||
|  | # This can often be determined automatically, but we recommend you specify | ||||||
|  | # it explicitly to prevent problems during startup. | ||||||
|  | # | ||||||
|  | # If your host doesn't have a registered DNS name, enter its IP address here. | ||||||
|  | # | ||||||
|  | #ServerName www.example.com:80 | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # DocumentRoot: The directory out of which you will serve your | ||||||
|  | # documents. By default, all requests are taken from this directory, but | ||||||
|  | # symbolic links and aliases may be used to point to other locations. | ||||||
|  | # | ||||||
|  | DocumentRoot "/usr/share/apache2/default-site/htdocs" | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Each directory to which Apache has access can be configured with respect | ||||||
|  | # to which services and features are allowed and/or disabled in that | ||||||
|  | # directory (and its subdirectories). | ||||||
|  | # | ||||||
|  | # First, we configure the "default" to be a very restrictive set of | ||||||
|  | # features. | ||||||
|  | # | ||||||
|  | <Directory /> | ||||||
|  |     Options FollowSymLinks | ||||||
|  |     AllowOverride None | ||||||
|  |     Order deny,allow | ||||||
|  |     Deny from all | ||||||
|  | </Directory> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Note that from this point forward you must specifically allow | ||||||
|  | # particular features to be enabled - so if something's not working as | ||||||
|  | # you might expect, make sure that you have specifically enabled it | ||||||
|  | # below. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # This should be changed to whatever you set DocumentRoot to. | ||||||
|  | # | ||||||
|  | <Directory "/usr/share/apache2/default-site/htdocs"> | ||||||
|  |     # | ||||||
|  |     # Possible values for the Options directive are "None", "All", | ||||||
|  |     # or any combination of: | ||||||
|  |     #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews | ||||||
|  |     # | ||||||
|  |     # Note that "MultiViews" must be named *explicitly* --- "Options All" | ||||||
|  |     # doesn't give it to you. | ||||||
|  |     # | ||||||
|  |     # The Options directive is both complicated and important.  Please see | ||||||
|  |     # http://httpd.apache.org/docs/2.2/mod/core.html#options | ||||||
|  |     # for more information. | ||||||
|  |     # | ||||||
|  |     Options Indexes FollowSymLinks | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # AllowOverride controls what directives may be placed in .htaccess files. | ||||||
|  |     # It can be "All", "None", or any combination of the keywords: | ||||||
|  |     #   Options FileInfo AuthConfig Limit | ||||||
|  |     # | ||||||
|  |     AllowOverride None | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # Controls who can get stuff from this server. | ||||||
|  |     # | ||||||
|  |     Order allow,deny | ||||||
|  |     Allow from all | ||||||
|  |  | ||||||
|  | </Directory> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # DirectoryIndex: sets the file that Apache will serve if a directory | ||||||
|  | # is requested. | ||||||
|  | # | ||||||
|  | <IfModule dir_module> | ||||||
|  |     DirectoryIndex index.html | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # The following lines prevent .htaccess and .htpasswd files from being | ||||||
|  | # viewed by Web clients. | ||||||
|  | # | ||||||
|  | <FilesMatch "^\.ht"> | ||||||
|  |     Order allow,deny | ||||||
|  |     Deny from all | ||||||
|  |     Satisfy All | ||||||
|  | </FilesMatch> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ErrorLog: The location of the error log file. | ||||||
|  | # If you do not specify an ErrorLog directive within a <VirtualHost> | ||||||
|  | # container, error messages relating to that virtual host will be | ||||||
|  | # logged here.  If you *do* define an error logfile for a <VirtualHost> | ||||||
|  | # container, that host's errors will be logged there and not here. | ||||||
|  | # | ||||||
|  | ErrorLog /var/log/apache2/error_log | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # LogLevel: Control the number of messages logged to the error_log. | ||||||
|  | # Possible values include: debug, info, notice, warn, error, crit, | ||||||
|  | # alert, emerg. | ||||||
|  | # | ||||||
|  | LogLevel warn | ||||||
|  |  | ||||||
|  | <IfModule log_config_module> | ||||||
|  |     # | ||||||
|  |     # The following directives define some format nicknames for use with | ||||||
|  |     # a CustomLog directive (see below). | ||||||
|  |     # | ||||||
|  |     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined | ||||||
|  |     LogFormat "%h %l %u %t \"%r\" %>s %b" common | ||||||
|  |  | ||||||
|  |     <IfModule logio_module> | ||||||
|  |       # You need to enable mod_logio.c to use %I and %O | ||||||
|  |       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio | ||||||
|  |     </IfModule> | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # The location and format of the access logfile (Common Logfile Format). | ||||||
|  |     # If you do not define any access logfiles within a <VirtualHost> | ||||||
|  |     # container, they will be logged here.  Contrariwise, if you *do* | ||||||
|  |     # define per-<VirtualHost> access logfiles, transactions will be | ||||||
|  |     # logged therein and *not* in this file. | ||||||
|  |     # | ||||||
|  |     CustomLog /var/log/apache2/access_log common | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # If you prefer a logfile with access, agent, and referer information | ||||||
|  |     # (Combined Logfile Format) you can use the following directive. | ||||||
|  |     # | ||||||
|  |     #CustomLog /var/log/apache2/access_log combined | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | <IfModule alias_module> | ||||||
|  |     # | ||||||
|  |     # Redirect: Allows you to tell clients about documents that used to | ||||||
|  |     # exist in your server's namespace, but do not anymore. The client | ||||||
|  |     # will make a new request for the document at its new location. | ||||||
|  |     # Example: | ||||||
|  |     # Redirect permanent /foo http://www.example.com/bar | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # Alias: Maps web paths into filesystem paths and is used to | ||||||
|  |     # access content that does not live under the DocumentRoot. | ||||||
|  |     # Example: | ||||||
|  |     # Alias /webpath /full/filesystem/path | ||||||
|  |     # | ||||||
|  |     # If you include a trailing / on /webpath then the server will | ||||||
|  |     # require it to be present in the URL.  You will also likely | ||||||
|  |     # need to provide a <Directory> section to allow access to | ||||||
|  |     # the filesystem path. | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # ScriptAlias: This controls which directories contain server scripts. | ||||||
|  |     # ScriptAliases are essentially the same as Aliases, except that | ||||||
|  |     # documents in the target directory are treated as applications and | ||||||
|  |     # run by the server when requested rather than as documents sent to the | ||||||
|  |     # client.  The same rules about trailing "/" apply to ScriptAlias | ||||||
|  |     # directives as to Alias. | ||||||
|  |     # | ||||||
|  |     ScriptAlias /cgi-bin/ "/usr/lib/cgi-bin/" | ||||||
|  |  | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | <IfModule cgid_module> | ||||||
|  |     # | ||||||
|  |     # ScriptSock: On threaded servers, designate the path to the UNIX | ||||||
|  |     # socket used to communicate with the CGI daemon of mod_cgid. | ||||||
|  |     # | ||||||
|  |     #Scriptsock /var/run/apache2/cgisock | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # "/usr/lib/cgi-bin" should be changed to whatever your ScriptAliased | ||||||
|  | # CGI directory exists, if you have that configured. | ||||||
|  | # | ||||||
|  | <Directory "/usr/lib/cgi-bin"> | ||||||
|  |     AllowOverride None | ||||||
|  |     Options None | ||||||
|  |     Order allow,deny | ||||||
|  |     Allow from all | ||||||
|  | </Directory> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # DefaultType: the default MIME type the server will use for a document | ||||||
|  | # if it cannot otherwise determine one, such as from filename extensions. | ||||||
|  | # If your server contains mostly text or HTML documents, "text/plain" is | ||||||
|  | # a good value.  If most of your content is binary, such as applications | ||||||
|  | # or images, you may want to use "application/octet-stream" instead to | ||||||
|  | # keep browsers from trying to display binary files as though they are | ||||||
|  | # text. | ||||||
|  | # | ||||||
|  | DefaultType text/plain | ||||||
|  |  | ||||||
|  | <IfModule mime_module> | ||||||
|  |     # | ||||||
|  |     # TypesConfig points to the file containing the list of mappings from | ||||||
|  |     # filename extension to MIME-type. | ||||||
|  |     # | ||||||
|  |     TypesConfig /etc/apache2/mime.types | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # AddType allows you to add to or override the MIME configuration | ||||||
|  |     # file specified in TypesConfig for specific file types. | ||||||
|  |     # | ||||||
|  |     #AddType application/x-gzip .tgz | ||||||
|  |     # | ||||||
|  |     # AddEncoding allows you to have certain browsers uncompress | ||||||
|  |     # information on the fly. Note: Not all browsers support this. | ||||||
|  |     # | ||||||
|  |     #AddEncoding x-compress .Z | ||||||
|  |     #AddEncoding x-gzip .gz .tgz | ||||||
|  |     # | ||||||
|  |     # If the AddEncoding directives above are commented-out, then you | ||||||
|  |     # probably should define those extensions to indicate media types: | ||||||
|  |     # | ||||||
|  |     AddType application/x-compress .Z | ||||||
|  |     AddType application/x-gzip .gz .tgz | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # AddHandler allows you to map certain file extensions to "handlers": | ||||||
|  |     # actions unrelated to filetype. These can be either built into the server | ||||||
|  |     # or added with the Action directive (see below) | ||||||
|  |     # | ||||||
|  |     # To use CGI scripts outside of ScriptAliased directories: | ||||||
|  |     # (You will also need to add "ExecCGI" to the "Options" directive.) | ||||||
|  |     # | ||||||
|  |     #AddHandler cgi-script .cgi | ||||||
|  |  | ||||||
|  |     # For type maps (negotiated resources): | ||||||
|  |     #AddHandler type-map var | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # Filters allow you to process content before it is sent to the client. | ||||||
|  |     # | ||||||
|  |     # To parse .shtml files for server-side includes (SSI): | ||||||
|  |     # (You will also need to add "Includes" to the "Options" directive.) | ||||||
|  |     # | ||||||
|  |     #AddType text/html .shtml | ||||||
|  |     #AddOutputFilter INCLUDES .shtml | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # The mod_mime_magic module allows the server to use various hints from the | ||||||
|  | # contents of the file itself to determine its type.  The MIMEMagicFile | ||||||
|  | # directive tells the module where the hint definitions are located. | ||||||
|  | # | ||||||
|  | #MIMEMagicFile /etc/apache2/magic | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Customizable error responses come in three flavors: | ||||||
|  | # 1) plain text 2) local redirects 3) external redirects | ||||||
|  | # | ||||||
|  | # Some examples: | ||||||
|  | #ErrorDocument 500 "The server made a boo boo." | ||||||
|  | #ErrorDocument 404 /missing.html | ||||||
|  | #ErrorDocument 404 "/cgi-bin/missing_handler.pl" | ||||||
|  | #ErrorDocument 402 http://www.example.com/subscription_info.html | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # EnableMMAP and EnableSendfile: On systems that support it, | ||||||
|  | # memory-mapping or the sendfile syscall is used to deliver | ||||||
|  | # files.  This usually improves server performance, but must | ||||||
|  | # be turned off when serving from networked-mounted | ||||||
|  | # filesystems or if support for these functions is otherwise | ||||||
|  | # broken on your system. | ||||||
|  | # | ||||||
|  | #EnableMMAP off | ||||||
|  | #EnableSendfile off | ||||||
|  |  | ||||||
|  | # Supplemental configuration | ||||||
|  | # | ||||||
|  | # The configuration files in the /etc/apache2/extra/ directory can be | ||||||
|  | # included to add extra features or to modify the default configuration of | ||||||
|  | # the server, or you may simply copy their contents here and change as | ||||||
|  | # necessary. | ||||||
|  |  | ||||||
|  | # Server-pool management (MPM specific) | ||||||
|  | #Include /etc/apache2/extra/httpd-mpm.conf | ||||||
|  |  | ||||||
|  | # Multi-language error messages | ||||||
|  | #Include /etc/apache2/extra/httpd-multilang-errordoc.conf | ||||||
|  |  | ||||||
|  | # Fancy directory listings | ||||||
|  | #Include /etc/apache2/extra/httpd-autoindex.conf | ||||||
|  |  | ||||||
|  | # Language settings | ||||||
|  | #Include /etc/apache2/extra/httpd-languages.conf | ||||||
|  |  | ||||||
|  | # User home directories | ||||||
|  | #Include /etc/apache2/extra/httpd-userdir.conf | ||||||
|  |  | ||||||
|  | # Real-time info on requests and configuration | ||||||
|  | #Include /etc/apache2/extra/httpd-info.conf | ||||||
|  |  | ||||||
|  | # Virtual hosts | ||||||
|  | #Include /etc/apache2/extra/httpd-vhosts.conf | ||||||
|  |  | ||||||
|  | # Local access to the Apache HTTP Server Manual | ||||||
|  | #Include /etc/apache2/extra/httpd-manual.conf | ||||||
|  |  | ||||||
|  | # Distributed authoring and versioning (WebDAV) | ||||||
|  | #Include /etc/apache2/extra/httpd-dav.conf | ||||||
|  |  | ||||||
|  | # Various default settings | ||||||
|  | #Include /etc/apache2/extra/httpd-default.conf | ||||||
|  |  | ||||||
|  | # Secure (SSL/TLS) connections | ||||||
|  | #Include /etc/apache2/extra/httpd-ssl.conf | ||||||
|  | # | ||||||
|  | # Note: The following must must be present to support | ||||||
|  | #       starting without SSL on platforms with no /dev/random equivalent | ||||||
|  | #       but a statically compiled-in mod_ssl. | ||||||
|  | # | ||||||
|  | <IfModule ssl_module> | ||||||
|  | SSLRandomSeed startup builtin | ||||||
|  | SSLRandomSeed connect builtin | ||||||
|  | </IfModule> | ||||||
							
								
								
									
										500
									
								
								samples/ApacheConf/filenames/httpd.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										500
									
								
								samples/ApacheConf/filenames/httpd.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,500 @@ | |||||||
|  | # | ||||||
|  | # This is the main Apache HTTP server configuration file.  It contains the | ||||||
|  | # configuration directives that give the server its instructions. | ||||||
|  | # See <URL:http://httpd.apache.org/docs/2.2> for detailed information. | ||||||
|  | # In particular, see  | ||||||
|  | # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html> | ||||||
|  | # for a discussion of each configuration directive. | ||||||
|  | # | ||||||
|  | # Do NOT simply read the instructions in here without understanding | ||||||
|  | # what they do.  They're here only as hints or reminders.  If you are unsure | ||||||
|  | # consult the online docs. You have been warned.   | ||||||
|  | # | ||||||
|  | # Configuration and logfile names: If the filenames you specify for many | ||||||
|  | # of the server's control files begin with "/" (or "drive:/" for Win32), the | ||||||
|  | # server will use that explicit path.  If the filenames do *not* begin | ||||||
|  | # with "/", the value of ServerRoot is prepended -- so "log/foo_log" | ||||||
|  | # with ServerRoot set to "/usr" will be interpreted by the | ||||||
|  | # server as "/usr/log/foo_log". | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ServerRoot: The top of the directory tree under which the server's | ||||||
|  | # configuration, error, and log files are kept. | ||||||
|  | # | ||||||
|  | # Do not add a slash at the end of the directory path.  If you point | ||||||
|  | # ServerRoot at a non-local disk, be sure to point the LockFile directive | ||||||
|  | # at a local disk.  If you wish to share the same ServerRoot for multiple | ||||||
|  | # httpd daemons, you will need to change at least LockFile and PidFile. | ||||||
|  | # | ||||||
|  | ServerRoot "/usr" | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Listen: Allows you to bind Apache to specific IP addresses and/or | ||||||
|  | # ports, instead of the default. See also the <VirtualHost> | ||||||
|  | # directive. | ||||||
|  | # | ||||||
|  | # Change this to Listen on specific IP addresses as shown below to  | ||||||
|  | # prevent Apache from glomming onto all bound IP addresses. | ||||||
|  | # | ||||||
|  | #Listen 12.34.56.78:80 | ||||||
|  | Listen 80 | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Dynamic Shared Object (DSO) Support | ||||||
|  | # | ||||||
|  | # To be able to use the functionality of a module which was built as a DSO you | ||||||
|  | # have to place corresponding `LoadModule' lines at this location so the | ||||||
|  | # directives contained in it are actually available _before_ they are used. | ||||||
|  | # Statically compiled modules (those listed by `httpd -l') do not need | ||||||
|  | # to be loaded here. | ||||||
|  | # | ||||||
|  | # Example: | ||||||
|  | # LoadModule foo_module modules/mod_foo.so | ||||||
|  | # | ||||||
|  | LoadModule authn_file_module libexec/apache2/mod_authn_file.so | ||||||
|  | LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so | ||||||
|  | LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so | ||||||
|  | LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so | ||||||
|  | LoadModule authn_default_module libexec/apache2/mod_authn_default.so | ||||||
|  | LoadModule authz_host_module libexec/apache2/mod_authz_host.so | ||||||
|  | LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so | ||||||
|  | LoadModule authz_user_module libexec/apache2/mod_authz_user.so | ||||||
|  | LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so | ||||||
|  | LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so | ||||||
|  | LoadModule authz_default_module libexec/apache2/mod_authz_default.so | ||||||
|  | LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so | ||||||
|  | LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so | ||||||
|  | LoadModule cache_module libexec/apache2/mod_cache.so | ||||||
|  | LoadModule disk_cache_module libexec/apache2/mod_disk_cache.so | ||||||
|  | LoadModule mem_cache_module libexec/apache2/mod_mem_cache.so | ||||||
|  | LoadModule dbd_module libexec/apache2/mod_dbd.so | ||||||
|  | LoadModule dumpio_module libexec/apache2/mod_dumpio.so | ||||||
|  | LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so | ||||||
|  | LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so | ||||||
|  | LoadModule include_module libexec/apache2/mod_include.so | ||||||
|  | LoadModule filter_module libexec/apache2/mod_filter.so | ||||||
|  | LoadModule substitute_module libexec/apache2/mod_substitute.so | ||||||
|  | LoadModule deflate_module libexec/apache2/mod_deflate.so | ||||||
|  | LoadModule log_config_module libexec/apache2/mod_log_config.so | ||||||
|  | LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so | ||||||
|  | LoadModule logio_module libexec/apache2/mod_logio.so | ||||||
|  | LoadModule env_module libexec/apache2/mod_env.so | ||||||
|  | LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so | ||||||
|  | LoadModule cern_meta_module libexec/apache2/mod_cern_meta.so | ||||||
|  | LoadModule expires_module libexec/apache2/mod_expires.so | ||||||
|  | LoadModule headers_module libexec/apache2/mod_headers.so | ||||||
|  | LoadModule ident_module libexec/apache2/mod_ident.so | ||||||
|  | LoadModule usertrack_module libexec/apache2/mod_usertrack.so | ||||||
|  | #LoadModule unique_id_module libexec/apache2/mod_unique_id.so | ||||||
|  | LoadModule setenvif_module libexec/apache2/mod_setenvif.so | ||||||
|  | LoadModule version_module libexec/apache2/mod_version.so | ||||||
|  | LoadModule proxy_module libexec/apache2/mod_proxy.so | ||||||
|  | LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so | ||||||
|  | LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so | ||||||
|  | LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so | ||||||
|  | LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so | ||||||
|  | LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so | ||||||
|  | LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so | ||||||
|  | LoadModule ssl_module libexec/apache2/mod_ssl.so | ||||||
|  | LoadModule mime_module libexec/apache2/mod_mime.so | ||||||
|  | LoadModule dav_module libexec/apache2/mod_dav.so | ||||||
|  | LoadModule status_module libexec/apache2/mod_status.so | ||||||
|  | LoadModule autoindex_module libexec/apache2/mod_autoindex.so | ||||||
|  | LoadModule asis_module libexec/apache2/mod_asis.so | ||||||
|  | LoadModule info_module libexec/apache2/mod_info.so | ||||||
|  | LoadModule cgi_module libexec/apache2/mod_cgi.so | ||||||
|  | LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so | ||||||
|  | LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so | ||||||
|  | LoadModule negotiation_module libexec/apache2/mod_negotiation.so | ||||||
|  | LoadModule dir_module libexec/apache2/mod_dir.so | ||||||
|  | LoadModule imagemap_module libexec/apache2/mod_imagemap.so | ||||||
|  | LoadModule actions_module libexec/apache2/mod_actions.so | ||||||
|  | LoadModule speling_module libexec/apache2/mod_speling.so | ||||||
|  | LoadModule userdir_module libexec/apache2/mod_userdir.so | ||||||
|  | LoadModule alias_module libexec/apache2/mod_alias.so | ||||||
|  | LoadModule rewrite_module libexec/apache2/mod_rewrite.so | ||||||
|  | #LoadModule perl_module libexec/apache2/mod_perl.so | ||||||
|  | #LoadModule php5_module libexec/apache2/libphp5.so | ||||||
|  | #LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so | ||||||
|  |  | ||||||
|  | <IfModule !mpm_netware_module> | ||||||
|  | <IfModule !mpm_winnt_module> | ||||||
|  | # | ||||||
|  | # If you wish httpd to run as a different user or group, you must run | ||||||
|  | # httpd as root initially and it will switch.   | ||||||
|  | # | ||||||
|  | # User/Group: The name (or #number) of the user/group to run httpd as. | ||||||
|  | # It is usually good practice to create a dedicated user and group for | ||||||
|  | # running httpd, as with most system services. | ||||||
|  | # | ||||||
|  | User _www | ||||||
|  | Group _www | ||||||
|  |  | ||||||
|  | </IfModule> | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # 'Main' server configuration | ||||||
|  | # | ||||||
|  | # The directives in this section set up the values used by the 'main' | ||||||
|  | # server, which responds to any requests that aren't handled by a | ||||||
|  | # <VirtualHost> definition.  These values also provide defaults for | ||||||
|  | # any <VirtualHost> containers you may define later in the file. | ||||||
|  | # | ||||||
|  | # All of these directives may appear inside <VirtualHost> containers, | ||||||
|  | # in which case these default settings will be overridden for the | ||||||
|  | # virtual host being defined. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ServerAdmin: Your address, where problems with the server should be | ||||||
|  | # e-mailed.  This address appears on some server-generated pages, such | ||||||
|  | # as error documents.  e.g. admin@your-domain.com | ||||||
|  | # | ||||||
|  | ServerAdmin you@example.com | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ServerName gives the name and port that the server uses to identify itself. | ||||||
|  | # This can often be determined automatically, but we recommend you specify | ||||||
|  | # it explicitly to prevent problems during startup. | ||||||
|  | # | ||||||
|  | # If your host doesn't have a registered DNS name, enter its IP address here. | ||||||
|  | # | ||||||
|  | #ServerName www.example.com:80 | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # DocumentRoot: The directory out of which you will serve your | ||||||
|  | # documents. By default, all requests are taken from this directory, but | ||||||
|  | # symbolic links and aliases may be used to point to other locations. | ||||||
|  | # | ||||||
|  | DocumentRoot "/Library/WebServer/Documents" | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Each directory to which Apache has access can be configured with respect | ||||||
|  | # to which services and features are allowed and/or disabled in that | ||||||
|  | # directory (and its subdirectories).  | ||||||
|  | # | ||||||
|  | # First, we configure the "default" to be a very restrictive set of  | ||||||
|  | # features.   | ||||||
|  | # | ||||||
|  | <Directory /> | ||||||
|  |     Options FollowSymLinks | ||||||
|  |     AllowOverride None | ||||||
|  |     Order deny,allow | ||||||
|  |     Deny from all | ||||||
|  | </Directory> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Note that from this point forward you must specifically allow | ||||||
|  | # particular features to be enabled - so if something's not working as | ||||||
|  | # you might expect, make sure that you have specifically enabled it | ||||||
|  | # below. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # This should be changed to whatever you set DocumentRoot to. | ||||||
|  | # | ||||||
|  | <Directory "/Library/WebServer/Documents"> | ||||||
|  |     # | ||||||
|  |     # Possible values for the Options directive are "None", "All", | ||||||
|  |     # or any combination of: | ||||||
|  |     #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews | ||||||
|  |     # | ||||||
|  |     # Note that "MultiViews" must be named *explicitly* --- "Options All" | ||||||
|  |     # doesn't give it to you. | ||||||
|  |     # | ||||||
|  |     # The Options directive is both complicated and important.  Please see | ||||||
|  |     # http://httpd.apache.org/docs/2.2/mod/core.html#options | ||||||
|  |     # for more information. | ||||||
|  |     # | ||||||
|  |     Options Indexes FollowSymLinks MultiViews | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # AllowOverride controls what directives may be placed in .htaccess files. | ||||||
|  |     # It can be "All", "None", or any combination of the keywords: | ||||||
|  |     #   Options FileInfo AuthConfig Limit | ||||||
|  |     # | ||||||
|  |     AllowOverride None | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # Controls who can get stuff from this server. | ||||||
|  |     # | ||||||
|  |     Order allow,deny | ||||||
|  |     Allow from all | ||||||
|  |  | ||||||
|  | </Directory> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # DirectoryIndex: sets the file that Apache will serve if a directory | ||||||
|  | # is requested. | ||||||
|  | # | ||||||
|  | <IfModule dir_module> | ||||||
|  |     DirectoryIndex index.html | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # The following lines prevent .htaccess and .htpasswd files from being  | ||||||
|  | # viewed by Web clients.  | ||||||
|  | # | ||||||
|  | <FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])"> | ||||||
|  |     Order allow,deny | ||||||
|  |     Deny from all | ||||||
|  |     Satisfy All | ||||||
|  | </FilesMatch> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Apple specific filesystem protection. | ||||||
|  | # | ||||||
|  | <Files "rsrc"> | ||||||
|  |     Order allow,deny | ||||||
|  |     Deny from all | ||||||
|  |     Satisfy All | ||||||
|  | </Files> | ||||||
|  | <DirectoryMatch ".*\.\.namedfork"> | ||||||
|  |     Order allow,deny | ||||||
|  |     Deny from all | ||||||
|  |     Satisfy All | ||||||
|  | </DirectoryMatch> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # ErrorLog: The location of the error log file. | ||||||
|  | # If you do not specify an ErrorLog directive within a <VirtualHost> | ||||||
|  | # container, error messages relating to that virtual host will be | ||||||
|  | # logged here.  If you *do* define an error logfile for a <VirtualHost> | ||||||
|  | # container, that host's errors will be logged there and not here. | ||||||
|  | # | ||||||
|  | ErrorLog "/private/var/log/apache2/error_log" | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # LogLevel: Control the number of messages logged to the error_log. | ||||||
|  | # Possible values include: debug, info, notice, warn, error, crit, | ||||||
|  | # alert, emerg. | ||||||
|  | # | ||||||
|  | LogLevel warn | ||||||
|  |  | ||||||
|  | <IfModule log_config_module> | ||||||
|  |     # | ||||||
|  |     # The following directives define some format nicknames for use with | ||||||
|  |     # a CustomLog directive (see below). | ||||||
|  |     # | ||||||
|  |     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined | ||||||
|  |     LogFormat "%h %l %u %t \"%r\" %>s %b" common | ||||||
|  |  | ||||||
|  |     <IfModule logio_module> | ||||||
|  |       # You need to enable mod_logio.c to use %I and %O | ||||||
|  |       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio | ||||||
|  |     </IfModule> | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # The location and format of the access logfile (Common Logfile Format). | ||||||
|  |     # If you do not define any access logfiles within a <VirtualHost> | ||||||
|  |     # container, they will be logged here.  Contrariwise, if you *do* | ||||||
|  |     # define per-<VirtualHost> access logfiles, transactions will be | ||||||
|  |     # logged therein and *not* in this file. | ||||||
|  |     # | ||||||
|  |     CustomLog "/private/var/log/apache2/access_log" common | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # If you prefer a logfile with access, agent, and referer information | ||||||
|  |     # (Combined Logfile Format) you can use the following directive. | ||||||
|  |     # | ||||||
|  |     #CustomLog "/private/var/log/apache2/access_log" combined | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | <IfModule alias_module> | ||||||
|  |     # | ||||||
|  |     # Redirect: Allows you to tell clients about documents that used to  | ||||||
|  |     # exist in your server's namespace, but do not anymore. The client  | ||||||
|  |     # will make a new request for the document at its new location. | ||||||
|  |     # Example: | ||||||
|  |     # Redirect permanent /foo http://www.example.com/bar | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # Alias: Maps web paths into filesystem paths and is used to | ||||||
|  |     # access content that does not live under the DocumentRoot. | ||||||
|  |     # Example: | ||||||
|  |     # Alias /webpath /full/filesystem/path | ||||||
|  |     # | ||||||
|  |     # If you include a trailing / on /webpath then the server will | ||||||
|  |     # require it to be present in the URL.  You will also likely | ||||||
|  |     # need to provide a <Directory> section to allow access to | ||||||
|  |     # the filesystem path. | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # ScriptAlias: This controls which directories contain server scripts.  | ||||||
|  |     # ScriptAliases are essentially the same as Aliases, except that | ||||||
|  |     # documents in the target directory are treated as applications and | ||||||
|  |     # run by the server when requested rather than as documents sent to the | ||||||
|  |     # client.  The same rules about trailing "/" apply to ScriptAlias | ||||||
|  |     # directives as to Alias. | ||||||
|  |     # | ||||||
|  |     ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1" | ||||||
|  |  | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | <IfModule cgid_module> | ||||||
|  |     # | ||||||
|  |     # ScriptSock: On threaded servers, designate the path to the UNIX | ||||||
|  |     # socket used to communicate with the CGI daemon of mod_cgid. | ||||||
|  |     # | ||||||
|  |     #Scriptsock /private/var/run/cgisock | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # "/Library/WebServer/CGI-Executables" should be changed to whatever your ScriptAliased | ||||||
|  | # CGI directory exists, if you have that configured. | ||||||
|  | # | ||||||
|  | <Directory "/Library/WebServer/CGI-Executables"> | ||||||
|  |     AllowOverride None | ||||||
|  |     Options None | ||||||
|  |     Order allow,deny | ||||||
|  |     Allow from all | ||||||
|  | </Directory> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # DefaultType: the default MIME type the server will use for a document | ||||||
|  | # if it cannot otherwise determine one, such as from filename extensions. | ||||||
|  | # If your server contains mostly text or HTML documents, "text/plain" is | ||||||
|  | # a good value.  If most of your content is binary, such as applications | ||||||
|  | # or images, you may want to use "application/octet-stream" instead to | ||||||
|  | # keep browsers from trying to display binary files as though they are | ||||||
|  | # text. | ||||||
|  | # | ||||||
|  | DefaultType text/plain | ||||||
|  |  | ||||||
|  | <IfModule mime_module> | ||||||
|  |     # | ||||||
|  |     # TypesConfig points to the file containing the list of mappings from | ||||||
|  |     # filename extension to MIME-type. | ||||||
|  |     # | ||||||
|  |     TypesConfig /private/etc/apache2/mime.types | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # AddType allows you to add to or override the MIME configuration | ||||||
|  |     # file specified in TypesConfig for specific file types. | ||||||
|  |     # | ||||||
|  |     #AddType application/x-gzip .tgz | ||||||
|  |     # | ||||||
|  |     # AddEncoding allows you to have certain browsers uncompress | ||||||
|  |     # information on the fly. Note: Not all browsers support this. | ||||||
|  |     # | ||||||
|  |     #AddEncoding x-compress .Z | ||||||
|  |     #AddEncoding x-gzip .gz .tgz | ||||||
|  |     # | ||||||
|  |     # If the AddEncoding directives above are commented-out, then you | ||||||
|  |     # probably should define those extensions to indicate media types: | ||||||
|  |     # | ||||||
|  |     AddType application/x-compress .Z | ||||||
|  |     AddType application/x-gzip .gz .tgz | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # AddHandler allows you to map certain file extensions to "handlers": | ||||||
|  |     # actions unrelated to filetype. These can be either built into the server | ||||||
|  |     # or added with the Action directive (see below) | ||||||
|  |     # | ||||||
|  |     # To use CGI scripts outside of ScriptAliased directories: | ||||||
|  |     # (You will also need to add "ExecCGI" to the "Options" directive.) | ||||||
|  |     # | ||||||
|  |     #AddHandler cgi-script .cgi | ||||||
|  |  | ||||||
|  |     # For type maps (negotiated resources): | ||||||
|  |     #AddHandler type-map var | ||||||
|  |  | ||||||
|  |     # | ||||||
|  |     # Filters allow you to process content before it is sent to the client. | ||||||
|  |     # | ||||||
|  |     # To parse .shtml files for server-side includes (SSI): | ||||||
|  |     # (You will also need to add "Includes" to the "Options" directive.) | ||||||
|  |     # | ||||||
|  |     #AddType text/html .shtml | ||||||
|  |     #AddOutputFilter INCLUDES .shtml | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # The mod_mime_magic module allows the server to use various hints from the | ||||||
|  | # contents of the file itself to determine its type.  The MIMEMagicFile | ||||||
|  | # directive tells the module where the hint definitions are located. | ||||||
|  | # | ||||||
|  | #MIMEMagicFile /private/etc/apache2/magic | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Customizable error responses come in three flavors: | ||||||
|  | # 1) plain text 2) local redirects 3) external redirects | ||||||
|  | # | ||||||
|  | # Some examples: | ||||||
|  | #ErrorDocument 500 "The server made a boo boo." | ||||||
|  | #ErrorDocument 404 /missing.html | ||||||
|  | #ErrorDocument 404 "/cgi-bin/missing_handler.pl" | ||||||
|  | #ErrorDocument 402 http://www.example.com/subscription_info.html | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # MaxRanges: Maximum number of Ranges in a request before | ||||||
|  | # returning the entire resource, or one of the special | ||||||
|  | # values 'default', 'none' or 'unlimited'. | ||||||
|  | # Default setting is to accept 200 Ranges. | ||||||
|  | #MaxRanges unlimited | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # EnableMMAP and EnableSendfile: On systems that support it,  | ||||||
|  | # memory-mapping or the sendfile syscall is used to deliver | ||||||
|  | # files.  This usually improves server performance, but must | ||||||
|  | # be turned off when serving from networked-mounted  | ||||||
|  | # filesystems or if support for these functions is otherwise | ||||||
|  | # broken on your system. | ||||||
|  | # | ||||||
|  | #EnableMMAP off | ||||||
|  | #EnableSendfile off | ||||||
|  |  | ||||||
|  | # 6894961 | ||||||
|  | TraceEnable off | ||||||
|  |  | ||||||
|  | # Supplemental configuration | ||||||
|  | # | ||||||
|  | # The configuration files in the /private/etc/apache2/extra/ directory can be  | ||||||
|  | # included to add extra features or to modify the default configuration of  | ||||||
|  | # the server, or you may simply copy their contents here and change as  | ||||||
|  | # necessary. | ||||||
|  |  | ||||||
|  | # Server-pool management (MPM specific) | ||||||
|  | Include /private/etc/apache2/extra/httpd-mpm.conf | ||||||
|  |  | ||||||
|  | # Multi-language error messages | ||||||
|  | #Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf | ||||||
|  |  | ||||||
|  | # Fancy directory listings | ||||||
|  | Include /private/etc/apache2/extra/httpd-autoindex.conf | ||||||
|  |  | ||||||
|  | # Language settings | ||||||
|  | Include /private/etc/apache2/extra/httpd-languages.conf | ||||||
|  |  | ||||||
|  | # User home directories | ||||||
|  | Include /private/etc/apache2/extra/httpd-userdir.conf | ||||||
|  |  | ||||||
|  | # Real-time info on requests and configuration | ||||||
|  | #Include /private/etc/apache2/extra/httpd-info.conf | ||||||
|  |  | ||||||
|  | # Virtual hosts | ||||||
|  | #Include /private/etc/apache2/extra/httpd-vhosts.conf | ||||||
|  |  | ||||||
|  | # Local access to the Apache HTTP Server Manual | ||||||
|  | Include /private/etc/apache2/extra/httpd-manual.conf | ||||||
|  |  | ||||||
|  | # Distributed authoring and versioning (WebDAV) | ||||||
|  | #Include /private/etc/apache2/extra/httpd-dav.conf | ||||||
|  |  | ||||||
|  | # Various default settings | ||||||
|  | #Include /private/etc/apache2/extra/httpd-default.conf | ||||||
|  |  | ||||||
|  | # Secure (SSL/TLS) connections | ||||||
|  | #Include /private/etc/apache2/extra/httpd-ssl.conf | ||||||
|  | # | ||||||
|  | # Note: The following must must be present to support | ||||||
|  | #       starting without SSL on platforms with no /dev/random equivalent | ||||||
|  | #       but a statically compiled-in mod_ssl. | ||||||
|  | # | ||||||
|  | <IfModule ssl_module> | ||||||
|  | SSLRandomSeed startup builtin | ||||||
|  | SSLRandomSeed connect builtin | ||||||
|  | </IfModule> | ||||||
|  |  | ||||||
|  | Include /private/etc/apache2/other/*.conf | ||||||
| @@ -1,13 +1,3 @@ | |||||||
| (************************************************************************) |  | ||||||
| (*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *) |  | ||||||
| (* <O___,, *   INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2010     *) |  | ||||||
| (*   \VV/  **************************************************************) |  | ||||||
| (*    //   *      This file is distributed under the terms of the       *) |  | ||||||
| (*         *       GNU Lesser General Public License Version 2.1        *) |  | ||||||
| (************************************************************************) |  | ||||||
|  |  | ||||||
| (** This file is deprecated, for a tree on list, use [Mergesort.v]. *) |  | ||||||
|  |  | ||||||
| (** A development of Treesort on Heap trees. It has an average | (** A development of Treesort on Heap trees. It has an average | ||||||
|     complexity of O(n.log n) but of O(n²) in the worst case (e.g. if |     complexity of O(n.log n) but of O(n²) in the worst case (e.g. if | ||||||
|     the list is already sorted) *) |     the list is already sorted) *) | ||||||
| @@ -88,9 +78,9 @@ Section defs. | |||||||
|     forall P:Tree -> Type, |     forall P:Tree -> Type, | ||||||
|       P Tree_Leaf -> |       P Tree_Leaf -> | ||||||
|       (forall (a:A) (T1 T2:Tree), |       (forall (a:A) (T1 T2:Tree), | ||||||
| 	leA_Tree a T1 -> |         leA_Tree a T1 -> | ||||||
| 	leA_Tree a T2 -> |         leA_Tree a T2 -> | ||||||
| 	is_heap T1 -> P T1 -> is_heap T2 -> P T2 -> P (Tree_Node a T1 T2)) -> |         is_heap T1 -> P T1 -> is_heap T2 -> P T2 -> P (Tree_Node a T1 T2)) -> | ||||||
|       forall T:Tree, is_heap T -> P T. |       forall T:Tree, is_heap T -> P T. | ||||||
|   Proof. |   Proof. | ||||||
|     simple induction T; auto with datatypes. |     simple induction T; auto with datatypes. | ||||||
| @@ -105,9 +95,9 @@ Section defs. | |||||||
|     forall P:Tree -> Set, |     forall P:Tree -> Set, | ||||||
|       P Tree_Leaf -> |       P Tree_Leaf -> | ||||||
|       (forall (a:A) (T1 T2:Tree), |       (forall (a:A) (T1 T2:Tree), | ||||||
| 	leA_Tree a T1 -> |         leA_Tree a T1 -> | ||||||
| 	leA_Tree a T2 -> |         leA_Tree a T2 -> | ||||||
| 	is_heap T1 -> P T1 -> is_heap T2 -> P T2 -> P (Tree_Node a T1 T2)) -> |         is_heap T1 -> P T1 -> is_heap T2 -> P T2 -> P (Tree_Node a T1 T2)) -> | ||||||
|       forall T:Tree, is_heap T -> P T. |       forall T:Tree, is_heap T -> P T. | ||||||
|   Proof. |   Proof. | ||||||
|     simple induction T; auto with datatypes. |     simple induction T; auto with datatypes. | ||||||
| @@ -135,13 +125,13 @@ Section defs. | |||||||
|       (forall a, HdRel leA a l1 -> HdRel leA a l2 -> HdRel leA a l) -> |       (forall a, HdRel leA a l1 -> HdRel leA a l2 -> HdRel leA a l) -> | ||||||
|       merge_lem l1 l2. |       merge_lem l1 l2. | ||||||
|   Require Import Morphisms. |   Require Import Morphisms. | ||||||
|    |  | ||||||
|   Instance: Equivalence (@meq A). |   Instance: Equivalence (@meq A). | ||||||
|   Proof. constructor; auto with datatypes. red. apply meq_trans. Defined. |   Proof. constructor; auto with datatypes. red. apply meq_trans. Defined. | ||||||
|  |  | ||||||
|   Instance: Proper (@meq A ++> @meq _ ++> @meq _) (@munion A). |   Instance: Proper (@meq A ++> @meq _ ++> @meq _) (@munion A). | ||||||
|   Proof. intros x y H x' y' H'. now apply meq_congr. Qed. |   Proof. intros x y H x' y' H'. now apply meq_congr. Qed. | ||||||
|    |  | ||||||
|   Lemma merge : |   Lemma merge : | ||||||
|     forall l1:list A, Sorted leA l1 -> |     forall l1:list A, Sorted leA l1 -> | ||||||
|     forall l2:list A, Sorted leA l2 -> merge_lem l1 l2. |     forall l2:list A, Sorted leA l2 -> merge_lem l1 l2. | ||||||
| @@ -150,8 +140,8 @@ Section defs. | |||||||
|     apply merge_exist with l2; auto with datatypes. |     apply merge_exist with l2; auto with datatypes. | ||||||
|     rename l1 into l. |     rename l1 into l. | ||||||
|     revert l2 H0. fix 1. intros. |     revert l2 H0. fix 1. intros. | ||||||
|     destruct l2 as [|a0 l0].  |     destruct l2 as [|a0 l0]. | ||||||
|     apply merge_exist with (a :: l); simpl; auto with datatypes.  |     apply merge_exist with (a :: l); simpl; auto with datatypes. | ||||||
|     elim (leA_dec a a0); intros. |     elim (leA_dec a a0); intros. | ||||||
|  |  | ||||||
|     (* 1 (leA a a0) *) |     (* 1 (leA a a0) *) | ||||||
| @@ -159,18 +149,18 @@ Section defs. | |||||||
|     destruct (merge l H (a0 :: l0) H0). |     destruct (merge l H (a0 :: l0) H0). | ||||||
|     apply merge_exist with (a :: l1). clear merge merge0. |     apply merge_exist with (a :: l1). clear merge merge0. | ||||||
|       auto using cons_sort, cons_leA with datatypes. |       auto using cons_sort, cons_leA with datatypes. | ||||||
|     simpl. rewrite m. now rewrite munion_ass.  |     simpl. rewrite m. now rewrite munion_ass. | ||||||
|     intros. apply cons_leA.  |     intros. apply cons_leA. | ||||||
|     apply (@HdRel_inv _ leA) with l; trivial with datatypes. |     apply (@HdRel_inv _ leA) with l; trivial with datatypes. | ||||||
|  |  | ||||||
|     (* 2 (leA a0 a) *) |     (* 2 (leA a0 a) *) | ||||||
|     apply Sorted_inv in H0. destruct H0. |     apply Sorted_inv in H0. destruct H0. | ||||||
|     destruct (merge0 l0 H0). clear merge merge0.   |     destruct (merge0 l0 H0). clear merge merge0. | ||||||
|     apply merge_exist with (a0 :: l1);  |     apply merge_exist with (a0 :: l1); | ||||||
|       auto using cons_sort, cons_leA with datatypes. |       auto using cons_sort, cons_leA with datatypes. | ||||||
|     simpl; rewrite m. simpl. setoid_rewrite munion_ass at 1. rewrite munion_comm. |     simpl; rewrite m. simpl. setoid_rewrite munion_ass at 1. rewrite munion_comm. | ||||||
|     repeat rewrite munion_ass. setoid_rewrite munion_comm at 3. reflexivity. |     repeat rewrite munion_ass. setoid_rewrite munion_comm at 3. reflexivity. | ||||||
|     intros. apply cons_leA.  |     intros. apply cons_leA. | ||||||
|     apply (@HdRel_inv _ leA) with l0; trivial with datatypes. |     apply (@HdRel_inv _ leA) with l0; trivial with datatypes. | ||||||
|   Qed. |   Qed. | ||||||
|  |  | ||||||
| @@ -186,7 +176,7 @@ Section defs. | |||||||
|     match t with |     match t with | ||||||
|       | Tree_Leaf => emptyBag |       | Tree_Leaf => emptyBag | ||||||
|       | Tree_Node a t1 t2 => |       | Tree_Node a t1 t2 => | ||||||
| 	munion (contents t1) (munion (contents t2) (singletonBag a)) |         munion (contents t1) (munion (contents t2) (singletonBag a)) | ||||||
|     end. |     end. | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -272,11 +262,11 @@ Section defs. | |||||||
|     apply flat_exist with (a :: l); simpl; auto with datatypes. |     apply flat_exist with (a :: l); simpl; auto with datatypes. | ||||||
|     apply meq_trans with |     apply meq_trans with | ||||||
|       (munion (list_contents _ eqA_dec l1) |       (munion (list_contents _ eqA_dec l1) | ||||||
| 	(munion (list_contents _ eqA_dec l2) (singletonBag a))). |         (munion (list_contents _ eqA_dec l2) (singletonBag a))). | ||||||
|     apply meq_congr; auto with datatypes. |     apply meq_congr; auto with datatypes. | ||||||
|     apply meq_trans with |     apply meq_trans with | ||||||
|       (munion (singletonBag a) |       (munion (singletonBag a) | ||||||
| 	(munion (list_contents _ eqA_dec l1) (list_contents _ eqA_dec l2))). |         (munion (list_contents _ eqA_dec l1) (list_contents _ eqA_dec l2))). | ||||||
|     apply munion_rotate. |     apply munion_rotate. | ||||||
|     apply meq_right; apply meq_sym; trivial with datatypes. |     apply meq_right; apply meq_sym; trivial with datatypes. | ||||||
|   Qed. |   Qed. | ||||||
|   | |||||||
| @@ -1,11 +1,3 @@ | |||||||
| (************************************************************************) |  | ||||||
| (*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *) |  | ||||||
| (* <O___,, *   INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2010     *) |  | ||||||
| (*   \VV/  **************************************************************) |  | ||||||
| (*    //   *      This file is distributed under the terms of the       *) |  | ||||||
| (*         *       GNU Lesser General Public License Version 2.1        *) |  | ||||||
| (************************************************************************) |  | ||||||
|  |  | ||||||
| Require Import Omega Relations Multiset SetoidList. | Require Import Omega Relations Multiset SetoidList. | ||||||
|  |  | ||||||
| (** This file is deprecated, use [Permutation.v] instead. | (** This file is deprecated, use [Permutation.v] instead. | ||||||
| @@ -154,7 +146,7 @@ Lemma permut_add_cons_inside : | |||||||
| Proof. | Proof. | ||||||
|   intros; |   intros; | ||||||
|     replace (a :: l) with ([] ++ a :: l); trivial; |     replace (a :: l) with ([] ++ a :: l); trivial; | ||||||
| 	apply permut_add_inside; trivial. |         apply permut_add_inside; trivial. | ||||||
| Qed. | Qed. | ||||||
|  |  | ||||||
| Lemma permut_middle : | Lemma permut_middle : | ||||||
| @@ -168,8 +160,8 @@ Lemma permut_sym_app : | |||||||
| Proof. | Proof. | ||||||
|   intros l1 l2; |   intros l1 l2; | ||||||
|     unfold permutation, meq; |     unfold permutation, meq; | ||||||
| 	intro a; do 2 rewrite list_contents_app; simpl; |         intro a; do 2 rewrite list_contents_app; simpl; | ||||||
| 	  auto with arith. |           auto with arith. | ||||||
| Qed. | Qed. | ||||||
|  |  | ||||||
| Lemma permut_rev : | Lemma permut_rev : | ||||||
|   | |||||||
| @@ -1,17 +1,5 @@ | |||||||
| (************************************************************************) |  | ||||||
| (*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *) |  | ||||||
| (* <O___,, *   INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2010     *) |  | ||||||
| (*   \VV/  **************************************************************) |  | ||||||
| (*    //   *      This file is distributed under the terms of the       *) |  | ||||||
| (*         *       GNU Lesser General Public License Version 2.1        *) |  | ||||||
| (************************************************************************) |  | ||||||
|  |  | ||||||
| (*********************************************************************) |  | ||||||
| (** * List permutations as a composition of adjacent transpositions  *) |  | ||||||
| (*********************************************************************) |  | ||||||
|  |  | ||||||
| (* Adapted in May 2006 by Jean-Marc Notin from initial contents by | (* Adapted in May 2006 by Jean-Marc Notin from initial contents by | ||||||
|    Laurent Théry (Huffmann contribution, October 2003) *) |    Laurent Thery (Huffmann contribution, October 2003) *) | ||||||
|  |  | ||||||
| Require Import List Setoid Compare_dec Morphisms. | Require Import List Setoid Compare_dec Morphisms. | ||||||
| Import ListNotations. (* For notations [] and [a;b;c] *) | Import ListNotations. (* For notations [] and [a;b;c] *) | ||||||
|   | |||||||
| @@ -1,10 +1,2 @@ | |||||||
| (************************************************************************) |  | ||||||
| (*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *) |  | ||||||
| (* <O___,, *   INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2010     *) |  | ||||||
| (*   \VV/  **************************************************************) |  | ||||||
| (*    //   *      This file is distributed under the terms of the       *) |  | ||||||
| (*         *       GNU Lesser General Public License Version 2.1        *) |  | ||||||
| (************************************************************************) |  | ||||||
|  |  | ||||||
| Require Export Sorted. | Require Export Sorted. | ||||||
| Require Export Mergesort. | Require Export Mergesort. | ||||||
|   | |||||||
							
								
								
									
										42
									
								
								samples/Ecl/sample.ecl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								samples/Ecl/sample.ecl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | |||||||
|  | /*  | ||||||
|  |  * Multi-line comment | ||||||
|  |  */ | ||||||
|  | #option ('slidingJoins', true); | ||||||
|  |  | ||||||
|  | namesRecord := | ||||||
|  |             RECORD | ||||||
|  | string20        surname; | ||||||
|  | string10        forename; | ||||||
|  | integer2        age; | ||||||
|  | integer2        dadAge; | ||||||
|  | integer2        mumAge; | ||||||
|  |             END; | ||||||
|  |  | ||||||
|  | namesRecord2 := | ||||||
|  |             record | ||||||
|  | string10        extra; | ||||||
|  | namesRecord; | ||||||
|  |             end; | ||||||
|  |  | ||||||
|  | namesTable := dataset('x',namesRecord,FLAT); | ||||||
|  | namesTable2 := dataset('y',namesRecord2,FLAT); | ||||||
|  |  | ||||||
|  | integer2 aveAgeL(namesRecord l) := (l.dadAge+l.mumAge)/2; | ||||||
|  | integer2 aveAgeR(namesRecord2 r) := (r.dadAge+r.mumAge)/2; | ||||||
|  |  | ||||||
|  | // Standard join on a function of left and right | ||||||
|  | output(join(namesTable, namesTable2, aveAgeL(left) = aveAgeR(right))); | ||||||
|  |  | ||||||
|  | //Several simple examples of sliding join syntax | ||||||
|  | output(join(namesTable, namesTable2, left.age >= right.age - 10 and left.age <= right.age +10)); | ||||||
|  | output(join(namesTable, namesTable2, left.age between right.age - 10 and right.age +10)); | ||||||
|  | output(join(namesTable, namesTable2, left.age between right.age + 10 and right.age +30)); | ||||||
|  | output(join(namesTable, namesTable2, left.age between (right.age + 20) - 10 and (right.age +20) + 10)); | ||||||
|  | output(join(namesTable, namesTable2, aveAgeL(left) between aveAgeR(right)+10 and aveAgeR(right)+40)); | ||||||
|  |  | ||||||
|  | //Same, but on strings.  Also includes age to ensure sort is done by non-sliding before sliding. | ||||||
|  | output(join(namesTable, namesTable2, left.surname between right.surname[1..10]+'AAAAAAAAAA' and right.surname[1..10]+'ZZZZZZZZZZ' and left.age=right.age)); | ||||||
|  | output(join(namesTable, namesTable2, left.surname between right.surname[1..10]+'AAAAAAAAAA' and right.surname[1..10]+'ZZZZZZZZZZ' and left.age=right.age,all)); | ||||||
|  |  | ||||||
|  | //This should not generate a self join | ||||||
|  | output(join(namesTable, namesTable, left.age between right.age - 10 and right.age +10)); | ||||||
							
								
								
									
										127
									
								
								samples/Elm/Basic.elm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								samples/Elm/Basic.elm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,127 @@ | |||||||
|  |  | ||||||
|  | import List (intercalate,intersperse) | ||||||
|  | import Website.Skeleton | ||||||
|  | import Website.ColorScheme | ||||||
|  |  | ||||||
|  | addFolder folder lst = | ||||||
|  |   let add (x,y) = (x, folder ++ y ++ ".elm") in | ||||||
|  |   let f (n,xs) = (n, map add xs) in | ||||||
|  |   map f lst | ||||||
|  |  | ||||||
|  | elements = addFolder "Elements/" | ||||||
|  |   [ ("Primitives", | ||||||
|  |         [ ("Text"  , "HelloWorld") | ||||||
|  |         , ("Images", "Image") | ||||||
|  |         , ("Fitted Images", "FittedImage") | ||||||
|  |         , ("Videos", "Video") | ||||||
|  |         , ("Markdown", "Markdown") | ||||||
|  |         ]) | ||||||
|  |   , ("Formatting", | ||||||
|  |         [ ("Size"    , "Size") | ||||||
|  |         , ("Opacity" , "Opacity") | ||||||
|  |         , ("Text"    , "Text") | ||||||
|  |         , ("Typeface", "Typeface") | ||||||
|  |         ]) | ||||||
|  |   , ("Layout", | ||||||
|  |         [ ("Simple Flow", "FlowDown1a") | ||||||
|  |         , ("Flow Down"  , "FlowDown2") | ||||||
|  |         , ("Layers"     , "Layers") | ||||||
|  |         , ("Positioning", "Position") | ||||||
|  |         , ("Spacers"    , "Spacer") | ||||||
|  |         ]) | ||||||
|  |   , ("Collage", [ ("Lines"     , "Lines") | ||||||
|  |                 , ("Shapes"    , "Shapes") | ||||||
|  |                 , ("Sprites"   , "Sprite") | ||||||
|  |                 , ("Elements"  , "ToForm") | ||||||
|  |                 , ("Colors"    , "Color") | ||||||
|  |                 , ("Textures"  , "Texture") | ||||||
|  |                 , ("Transforms", "Transforms") | ||||||
|  |                 ]) | ||||||
|  |   ] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | functional = addFolder "Functional/" | ||||||
|  |   [ ("Recursion", | ||||||
|  |         [ ("Factorial"  , "Factorial") | ||||||
|  |         , ("List Length", "Length") | ||||||
|  |         , ("Zip"        , "Zip") | ||||||
|  |         , ("Quick Sort" , "QuickSort") | ||||||
|  |         ]) | ||||||
|  |   , ("Functions", | ||||||
|  |         [ ("Anonymous Functions", "Anonymous") | ||||||
|  |         , ("Application"        , "Application") | ||||||
|  |         , ("Composition"        , "Composition") | ||||||
|  |         , ("Infix Operators"    , "Infix") | ||||||
|  |         ]) | ||||||
|  |   , ("Higher-Order", | ||||||
|  |         [ ("Map"    , "Map") | ||||||
|  |         , ("Fold"   , "Sum") | ||||||
|  |         , ("Filter" , "Filter") | ||||||
|  |         , ("ZipWith", "ZipWith") | ||||||
|  |         ]) | ||||||
|  |   , ("Data Types", | ||||||
|  |         [ ("Maybe", "Maybe") | ||||||
|  |         , ("Boolean Expressions", "BooleanExpressions") | ||||||
|  |         , ("Tree", "Tree") | ||||||
|  |         ]) | ||||||
|  |   ] | ||||||
|  |  | ||||||
|  | reactive = addFolder "Reactive/" | ||||||
|  |   [ ("Mouse",  [ ("Position", "Position") | ||||||
|  |                , ("Presses"    , "IsDown") | ||||||
|  |                , ("Clicks"    , "CountClicks") | ||||||
|  |                , ("Position+Image", "ResizeYogi") | ||||||
|  |                , ("Position+Collage"    , "Transforms") | ||||||
|  |                -- , ("Hover"     , "IsAbove") | ||||||
|  |                ]) | ||||||
|  |   ,("Keyboard",[ ("Keys Down"  , "KeysDown") | ||||||
|  |                , ("Key Presses", "CharPressed") | ||||||
|  |                ]) | ||||||
|  |   , ("Window", [ ("Size", "ResizePaint") | ||||||
|  |                , ("Centering", "Centering") | ||||||
|  |                ]) | ||||||
|  |   , ("Time",   [ ("Before and After", "Between") | ||||||
|  |                , ("Every"           , "Every") | ||||||
|  |                , ("Clock"           , "Clock") | ||||||
|  |                ]) | ||||||
|  |   , ("Input",  [ ("Text Fields", "TextField") | ||||||
|  |                , ("Passwords"  , "Password") | ||||||
|  |                , ("Check Boxes", "CheckBox") | ||||||
|  |                , ("String Drop Down", "StringDropDown") | ||||||
|  |                , ("Drop Down", "DropDown") | ||||||
|  |                ]) | ||||||
|  |   , ("Random", [ ("Randomize", "Randomize") ]) | ||||||
|  |   , ("HTTP",   [ ("Zip Codes", "ZipCodes") ]) | ||||||
|  |   , ("Filters",[ ("Sample", "SampleOn") | ||||||
|  |                , ("Keep If", "KeepIf") | ||||||
|  |                , ("Drop Repeats", "DropRepeats") | ||||||
|  |                ]) | ||||||
|  |   ] | ||||||
|  |  | ||||||
|  | example (name, loc) = Text.link ("/edit/examples/" ++ loc) (toText name) | ||||||
|  | toLinks (title, links) = | ||||||
|  |   flow right [ width 130 (text $ toText "   " ++ italic (toText title)) | ||||||
|  |              , text (intercalate (bold . Text.color accent4 $ toText "  ·  ") $ map example links) | ||||||
|  |              ] | ||||||
|  |  | ||||||
|  | insertSpace lst = case lst of { x:xs -> x : spacer 1 5 : xs ; [] -> [] } | ||||||
|  |  | ||||||
|  | subsection w (name,info) = | ||||||
|  |   flow down . insertSpace . intersperse (spacer 1 1) . map (width w) $ | ||||||
|  |     (text . bold $ toText name) : map toLinks info | ||||||
|  |  | ||||||
|  | words = [markdown| | ||||||
|  |  | ||||||
|  | ### Basic Examples | ||||||
|  |  | ||||||
|  | Each example listed below focuses on a single function or concept. | ||||||
|  | These examples demonstrate all of the basic building blocks of Elm. | ||||||
|  |  | ||||||
|  | |] | ||||||
|  |  | ||||||
|  | content w = | ||||||
|  |   words : map (subsection w) [ ("Display",elements), ("React",reactive), ("Compute",functional) ] | ||||||
|  |  | ||||||
|  | exampleSets w = flow down . map (width w) . intersperse (plainText " ") $ content w | ||||||
|  |  | ||||||
|  | main = lift (skeleton exampleSets) Window.width | ||||||
							
								
								
									
										32
									
								
								samples/Elm/QuickSort.elm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								samples/Elm/QuickSort.elm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  |  | ||||||
|  | main = asText (qsort [3,9,1,8,5,4,7]) | ||||||
|  |  | ||||||
|  | qsort lst = | ||||||
|  |   case lst of | ||||||
|  |     x:xs -> qsort (filter ((>=)x) xs) ++ [x] ++ qsort (filter ((<)x) xs) | ||||||
|  |     [] -> [] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | {--------------------- | ||||||
|  |  | ||||||
|  | QuickSort works as follows: | ||||||
|  |  - Choose a pivot element which be placed in the "middle" of the sorted list. | ||||||
|  |    In our case we are choosing the first element as the pivot. | ||||||
|  |  - Gather all of the elements less than the pivot (the first filter). | ||||||
|  |    We know that these must come before our pivot element in the sorted list. | ||||||
|  |    Note: ((>=)x) === (\y -> (>=) x y) === (\y -> x >= y) | ||||||
|  |  - Gather all of the elements greater than the pivot (the second filter). | ||||||
|  |    We know that these must come after our pivot element in the sorted list. | ||||||
|  |  - Run `qsort` on the lesser elements, producing a sorted list that contains | ||||||
|  |    only elements less than the pivot. Put these before the pivot. | ||||||
|  |  - Run `qsort` on the greater elements, producing a sorted list. Put these | ||||||
|  |    after the pivot. | ||||||
|  |  | ||||||
|  | Note that choosing a bad pivot can have bad effects. Take a sorted list with | ||||||
|  | N elements. The pivot will always be the lowest member, meaning that it does | ||||||
|  | not divide the list very evenly. The list of lessers has 0 elements | ||||||
|  | and the list of greaters has N-1 elemens. This means qsort will be called | ||||||
|  | N times, each call looking through the entire list. This means, in the worst | ||||||
|  | case, QuickSort will make N^2 comparisons. | ||||||
|  |  | ||||||
|  | ----------------------} | ||||||
							
								
								
									
										91
									
								
								samples/Elm/Tree.elm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								samples/Elm/Tree.elm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,91 @@ | |||||||
|  |  | ||||||
|  | {----------------------------------------------------------------- | ||||||
|  |  | ||||||
|  | Overview: A "Tree" represents a binary tree. A "Node" in a binary | ||||||
|  | tree always has two children. A tree can also be "Empty". Below | ||||||
|  | I have defined "Tree" and a number of useful functions. | ||||||
|  |  | ||||||
|  | This example also includes some challenge problems :) | ||||||
|  |  | ||||||
|  | -----------------------------------------------------------------} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | data Tree a = Node a (Tree a) (Tree a) | Empty | ||||||
|  |  | ||||||
|  | empty = Empty | ||||||
|  | singleton v = Node v Empty Empty | ||||||
|  |  | ||||||
|  | insert x tree = | ||||||
|  |   case tree of | ||||||
|  |     Empty -> singleton x | ||||||
|  |     Node y left right -> | ||||||
|  |       if x == y then tree else | ||||||
|  |       if x <  y then Node y (insert x left) right | ||||||
|  |                 else Node y left (insert x right) | ||||||
|  |  | ||||||
|  | fromList xs = foldl insert empty xs | ||||||
|  |  | ||||||
|  | depth tree = | ||||||
|  |   case tree of | ||||||
|  |     Node v left right -> 1 + max (depth left) (depth right) | ||||||
|  |     Empty -> 0 | ||||||
|  |  | ||||||
|  | map f tree = | ||||||
|  |   case tree of | ||||||
|  |     Node v left right -> Node (f v) (map f left) (map f right) | ||||||
|  |     Empty -> Empty | ||||||
|  |  | ||||||
|  | t1 = fromList [1,2,3] | ||||||
|  | t2 = fromList [2,1,3] | ||||||
|  |  | ||||||
|  | main = flow down [ display "depth" depth t1 | ||||||
|  |                  , display "depth" depth t2 | ||||||
|  |                  , display "map ((+)1)" (map ((+)1)) t2 | ||||||
|  |                  ] | ||||||
|  |  | ||||||
|  | display name f v = | ||||||
|  |   text . monospace . toText $ | ||||||
|  |   concat [ show (f v), " ⇐ ", name, " ", show v ] | ||||||
|  |  | ||||||
|  | {----------------------------------------------------------------- | ||||||
|  |  | ||||||
|  | Exercises: | ||||||
|  |  | ||||||
|  | (1) Sum all of the elements of a tree. | ||||||
|  |  | ||||||
|  |        sum :: Tree Number -> Number | ||||||
|  |  | ||||||
|  | (2) Flatten a tree into a list. | ||||||
|  |  | ||||||
|  |        flatten :: Tree a -> [a] | ||||||
|  |  | ||||||
|  | (3) Check to see if an element is in a given tree. | ||||||
|  |  | ||||||
|  |        isElement :: a -> Tree a -> Bool  | ||||||
|  |  | ||||||
|  | (4) Write a general fold function that acts on trees. The fold | ||||||
|  |     function does not need to guarantee a particular order of | ||||||
|  |     traversal. | ||||||
|  |  | ||||||
|  |        fold :: (a -> b -> b) -> b -> Tree a -> b | ||||||
|  |  | ||||||
|  | (5) Use "fold" to do exercises 1-3 in one line each. The best | ||||||
|  |     readable versions I have come up have the following length | ||||||
|  |     in characters including spaces and function name: | ||||||
|  |       sum: 16 | ||||||
|  |       flatten: 21 | ||||||
|  |       isElement: 46 | ||||||
|  |     See if you can match or beat me! Don't forget about currying | ||||||
|  |     and partial application! | ||||||
|  |  | ||||||
|  | (6) Can "fold" be used to implement "map" or "depth"? | ||||||
|  |  | ||||||
|  | (7) Try experimenting with different ways to traverse a | ||||||
|  |     tree: pre-order, in-order, post-order, depth-first, etc. | ||||||
|  |     More info at: http://en.wikipedia.org/wiki/Tree_traversal | ||||||
|  |  | ||||||
|  | -----------------------------------------------------------------} | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								samples/Handlebars/basic.handlebars
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								samples/Handlebars/basic.handlebars
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | <div class="entry"> | ||||||
|  |   <h1>{{title}}</h1> | ||||||
|  |   <div class="body"> | ||||||
|  |     {{body}} | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
							
								
								
									
										11
									
								
								samples/Handlebars/each.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								samples/Handlebars/each.hbs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | <div class="post"> | ||||||
|  |   <h1>By {{fullName author}}</h1> | ||||||
|  |   <div class="body">{{body}}</div> | ||||||
|  |  | ||||||
|  |   <h1>Comments</h1> | ||||||
|  |  | ||||||
|  |   {{#each comments}} | ||||||
|  |   <h2>By {{fullName author}}</h2> | ||||||
|  |   <div class="body">{{body}}</div> | ||||||
|  |   {{/each}} | ||||||
|  | </div> | ||||||
							
								
								
									
										70
									
								
								samples/Nginx/filenames/nginx.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								samples/Nginx/filenames/nginx.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | user       www www; | ||||||
|  | worker_processes  5; | ||||||
|  | error_log  logs/error.log; | ||||||
|  | pid        logs/nginx.pid; | ||||||
|  | worker_rlimit_nofile 8192; | ||||||
|  |  | ||||||
|  | events { | ||||||
|  |   worker_connections  4096; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | http { | ||||||
|  |   include    conf/mime.types; | ||||||
|  |   include    /etc/nginx/proxy.conf; | ||||||
|  |   include    /etc/nginx/fastcgi.conf; | ||||||
|  |   index    index.html index.htm index.php; | ||||||
|  |  | ||||||
|  |   default_type application/octet-stream; | ||||||
|  |   log_format   main '$remote_addr - $remote_user [$time_local]  $status ' | ||||||
|  |     '"$request" $body_bytes_sent "$http_referer" ' | ||||||
|  |     '"$http_user_agent" "$http_x_forwarded_for"'; | ||||||
|  |   access_log   logs/access.log  main; | ||||||
|  |   sendfile     on; | ||||||
|  |   tcp_nopush   on; | ||||||
|  |   server_names_hash_bucket_size 128; # this seems to be required for some vhosts | ||||||
|  |  | ||||||
|  |   server { # php/fastcgi | ||||||
|  |     listen       80; | ||||||
|  |     server_name  domain1.com www.domain1.com; | ||||||
|  |     access_log   logs/domain1.access.log  main; | ||||||
|  |     root         html; | ||||||
|  |  | ||||||
|  |     location ~ \.php$ { | ||||||
|  |       fastcgi_pass   127.0.0.1:1025; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   server { # simple reverse-proxy | ||||||
|  |     listen       80; | ||||||
|  |     server_name  domain2.com www.domain2.com; | ||||||
|  |     access_log   logs/domain2.access.log  main; | ||||||
|  |  | ||||||
|  |     # serve static files | ||||||
|  |     location ~ ^/(images|javascript|js|css|flash|media|static)/  { | ||||||
|  |       root    /var/www/virtual/big.server.com/htdocs; | ||||||
|  |       expires 30d; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     # pass requests for dynamic content to rails/turbogears/zope, et al | ||||||
|  |     location / { | ||||||
|  |       proxy_pass      http://127.0.0.1:8080; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   upstream big_server_com { | ||||||
|  |     server 127.0.0.3:8000 weight=5; | ||||||
|  |     server 127.0.0.3:8001 weight=5; | ||||||
|  |     server 192.168.0.1:8000; | ||||||
|  |     server 192.168.0.1:8001; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   server { # simple load balancing | ||||||
|  |     listen          80; | ||||||
|  |     server_name     big.server.com; | ||||||
|  |     access_log      logs/big.server.access.log main; | ||||||
|  |  | ||||||
|  |     location / { | ||||||
|  |       proxy_pass      http://big_server_com; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										4
									
								
								samples/PHP/php-script.script!
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								samples/PHP/php-script.script!
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | #!/usr/bin/php | ||||||
|  | <?php | ||||||
|  |  | ||||||
|  | echo "PHP\n"; | ||||||
							
								
								
									
										4
									
								
								samples/PHP/php.script!
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								samples/PHP/php.script!
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | #!/usr/bin/env php | ||||||
|  | <?php | ||||||
|  |  | ||||||
|  | echo "PHP\n"; | ||||||
							
								
								
									
										1
									
								
								samples/Shell/filenames/.bash_logout
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Shell/filenames/.bash_logout
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | /usr/bin/clear | ||||||
| @@ -1 +1,36 @@ | |||||||
| export PATH="/usr/local/bin:/usr/bin:/bin" | ## | ||||||
|  | # Environment... | ||||||
|  | ## | ||||||
|  | # Set up some variables for 'screen' | ||||||
|  | if [ -z "${SCREENDIR}" ];then echo -n | ||||||
|  |         export SCREENDIR="${HOME}/.screen" | ||||||
|  |                 # Save my screen sockets within my $HOME dir | ||||||
|  | fi | ||||||
|  | ## PATH | ||||||
|  | export PATH=/usr/local/bin:/usr/local/sbin:/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/openwin/bin:/opt/mysql/current/bin | ||||||
|  | export MANPATH=/usr/local/man:/usr/share/man | ||||||
|  |  | ||||||
|  | ## Random ENV... | ||||||
|  | # Set $TERM to 'vt100' (a safe default) if, for some | ||||||
|  | # reason, it is set to 'network' (which is not valid!) | ||||||
|  | if [ ${TERM} == 'network' ];then echo -n | ||||||
|  |         export TERM='vt100' | ||||||
|  |                 # not 'nsterm' because if its 'network' we're | ||||||
|  |                 # probly not in Terminal.app | ||||||
|  | fi | ||||||
|  | # Set $COLORTERM, all this does is trick *some* apps into | ||||||
|  | # using color in the terminal, which should happen anyway. | ||||||
|  | if [ -z "${COLORTERM}" ];then echo -n | ||||||
|  |         export COLORTERM="${TERM}" | ||||||
|  | fi | ||||||
|  | # another color option, this one for BSD's ls | ||||||
|  | if [ -z "${CLICOLOR}" ];then echo -n | ||||||
|  |         export CLICOLOR='1' # can be set to anything, actually | ||||||
|  | fi | ||||||
|  | # If $DISPLAY is not already set, set it! | ||||||
|  | if [ -z "${DISPLAY}" ];then echo -n | ||||||
|  |         export DISPLAY=':0' | ||||||
|  | fi | ||||||
|  | ## | ||||||
|  | # Source the bash rc file | ||||||
|  | [ -r "${HOME}/.bashrc" ] && . "${HOME}/.bashrc" | ||||||
|   | |||||||
| @@ -1 +1,119 @@ | |||||||
| export PATH="/usr/local/bin:/usr/bin:/bin" | ## | ||||||
|  | # Functions... *MUCH* better than aliases, and they do more too! | ||||||
|  | # but they clutter the environment... (try typing just 'set' at the prompt) | ||||||
|  | ## | ||||||
|  | # The reason that some of these are... odd... is because | ||||||
|  | # I had to convert them early because bash can't do positional | ||||||
|  | # arguments in aliases! functionName () { do something $@<-arguments ; } | ||||||
|  |  function ls    { command ls -Fh "$@"; } | ||||||
|  |         # 'command ls' to prevent loop; -A for .file, -F for dir/ link@, | ||||||
|  |         # -h for 5k 3m 1g, -o for printing flags (uchg)... | ||||||
|  |  function l     { ls -l "$@"; } # -l to list in long format... | ||||||
|  |  function ll    { l "$@" | less -XF ; } # pipe into 'more' | ||||||
|  |  | ||||||
|  | ## | ||||||
|  | # Tips and Ticks... from http://www.caliban.org/bash/index.shtml | ||||||
|  | ## | ||||||
|  | # The $CDPATH variable is so that you can be in /path/to/something and 'cd' | ||||||
|  | # to 'somethingElse' and end up in /not/the/same/path/to/somethingElse. | ||||||
|  | # iWould use it if it didn't ALWAYS echo the directory it changes to! | ||||||
|  | #CDPATH='.:~' | ||||||
|  | # | ||||||
|  | # HISTIGNORE="&:l:ls:ls *:l *:cd:cd *:[bf]g:exit:quit:q:sleep *" | ||||||
|  |         # History ignores commands that include any l/ls/cd etc | ||||||
|  |         # This kicks-ass! It drops repeats and other useless | ||||||
|  |         # things from the command history! | ||||||
|  |  HISTIGNORE="[bf]g:exit:quit:q:sleep *" | ||||||
|  |         # I want to see l/ls/cd in my history | ||||||
|  |  HISTCONTROL=ignoreboth | ||||||
|  |         # ignores both commands that start with a space or a tab, and duplicates | ||||||
|  |         # other options are as follows: | ||||||
|  |         # `ignorespace' means to not enter lines which begin with a space or tab into the history list. | ||||||
|  |         # `ignoredups' means to not enter lines which match the last entered line. | ||||||
|  |         # `ignoreboth' combines the two options. | ||||||
|  |  | ||||||
|  |  shopt -s cdspell extglob progcomp | ||||||
|  |         # Spell check for 'cd', extended globbing, programmable completion | ||||||
|  |  | ||||||
|  | ## | ||||||
|  | # Bash Completion... Cannibalised from bash_completion 20030929 | ||||||
|  | # Completion defaults... Yes, its long... | ||||||
|  | # Basically this sets up many useful defaults for command completion, these | ||||||
|  | #  should probly be built into bash. Use bash_completions itself if you want | ||||||
|  | #  more functionality and don't mind the hacks it uses. | ||||||
|  |  complete -f -X '!*.?(t)bz2' bunzip2 bzcat bzcmp bzdiff bzegrep bzfgrep bzgrep | ||||||
|  |  complete -f -X '!*.@(zip|ZIP|jar|JAR|exe|EXE|pk3|war|wsz|ear|zargo|xpi)' unzip zipinfo | ||||||
|  |  complete -f -X '*.Z' compress znew | ||||||
|  |  complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' gunzip zcmp zdiff zcat zegrep zfgrep zgrep zless zmore | ||||||
|  |  complete -f -X '!*.Z' uncompress | ||||||
|  |  complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|GIF|JP?(E)G|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA)' ee  display | ||||||
|  |  complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv | ||||||
|  |  complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.Z))' gv ggv | ||||||
|  |  complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi | ||||||
|  |  complete -f -X '!*.@(dvi|DVI)' dvips dviselect dvitype | ||||||
|  |  complete -f -X '!*.@(pdf|PDF)' acroread xpdf | ||||||
|  |  complete -f -X '!*.texi*' makeinfo texi2html | ||||||
|  |  complete -f -X '!*.@(?(la)tex|?(LA)TEX|texi|TEXI|dtx|DTX|ins|INS)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi | ||||||
|  |  complete -f -X '!*.@(mp3|MP3|m3u)' mpg123 mpg321 | ||||||
|  |  complete -f -X '!*.@(mp?(e)g|MP?(E)G|wma|avi|AVI|asf|vob|bin|dat|vcd|ps|pes|fli|viv|rm|ram|yuv|mov|MOV|qt|QT|wmv|mp3|MP3|ogg|OGG|ogm|OGM|mp4|MP4|wav|WAV)' xine | ||||||
|  |  complete -f -X '!*.@(avi|asf|wmv)' aviplay | ||||||
|  |  complete -f -X '!*.@(rm|ram|smi?(l))' realplay | ||||||
|  |  complete -f -X '!*.@(mp?(e)g|avi|mov|qt)' xanim | ||||||
|  |  complete -f -X '!*.@(ogg|OGG|m3u)' ogg123 | ||||||
|  |  complete -f -X '!*.@(mp3|MP3|ogg|OGG|pls|m3u)' gqmpeg freeamp | ||||||
|  |  complete -f -X '!*.@(mp[23]|MP[23]|ogg|OGG|wav|WAV|pls|m3u|xm|mod|s[3t]m|it|mtm|ult|flac)' xmms | ||||||
|  |  complete -f -X '!*.fig' xfig | ||||||
|  |  complete -f -X '!*.@(mid?(i))' timidity playmidi | ||||||
|  |  complete -f -X '.*|*.@(o|so|so.!(conf)|a|tar?(.@(gz|bz2))|tgz|tbz2|rpm|zip|ZIP|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' vi vim gvim rvim view rview rgvim rgview gview emacs | ||||||
|  |  complete -f -X '!*.@(exe|EXE|com|COM|scr|SCR)' wine | ||||||
|  |  complete -f -X '!*.@(zip|ZIP|z|Z|gz|GZ|tgz|TGZ)' bzme | ||||||
|  |  complete -f -X '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx opera w3m galeon curl dillo elinks links | ||||||
|  | # | ||||||
|  |  complete -u su passwd groups # user commands see only users | ||||||
|  |  complete -A stopped -P '%' bg # bg completes with stopped jobs | ||||||
|  |  complete -j -P '%' fg jobs disown # other job commands | ||||||
|  |  complete -v readonly unset export # readonly and unset complete with shell variables | ||||||
|  |  complete -A setopt set # set completes with set options | ||||||
|  |  complete -A shopt shopt # shopt completes with shopt options | ||||||
|  |  complete -A helptopic help # helptopics | ||||||
|  |  complete -a unalias # unalias completes with aliases | ||||||
|  |  complete -A binding bind # bind completes with readline bindings (make this more intelligent) | ||||||
|  |  complete -c command type which man #sudo # type, which, man complete on commands | ||||||
|  |  complete -d pushd cd rmdir # Make directory commands see only directories | ||||||
|  |  complete -W ' ' alias # no filenames for alias, | ||||||
|  |  | ||||||
|  | ## | ||||||
|  | # Set the prompt | ||||||
|  | ## | ||||||
|  |  PS1="[\h:\w] \[\033[1;34m\]\u\[\033[0m\]\\$ " | ||||||
|  |         # My prompt line:       "[gaelicWizard:~/Documents] user$ " user is in blue | ||||||
|  |         # Or:                   "[gaelicWizard:~/Documents] root# " root is in blue | ||||||
|  | ## | ||||||
|  | # Aliases: | ||||||
|  | ## | ||||||
|  | # Aliases frequently used... | ||||||
|  |  alias ..='cd ..;l' | ||||||
|  |  alias cd..='cd ..' | ||||||
|  |  alias which='type' # 'which' in (t)csh is same(?) as 'type' in bash... | ||||||
|  |  alias quit='exit' | ||||||
|  |  alias q='quit' # and 'q' is even shorter! :-D | ||||||
|  |  alias v='vim' | ||||||
|  |  alias rehash='. ~/.bashrc;' # source ~/.bashrc after I edit it | ||||||
|  |  alias pg='ps -afe|grep -v grep|grep' | ||||||
|  |  alias make='gmake' | ||||||
|  |  alias patch='gpatch' | ||||||
|  |  alias sed='gsed' | ||||||
|  |  alias awk='nawk' | ||||||
|  |  alias diff='gdiff' | ||||||
|  |  alias grep='ggrep' | ||||||
|  |  alias find='gfind' | ||||||
|  |  alias ps='/usr/ucb/ps' | ||||||
|  |  alias whoami='/usr/ucb/whoami' | ||||||
|  |  alias ping='ping -s' | ||||||
|  |  alias man='GROFF_NO_SGR= TCAT="less -s" TROFF="groff -Tascii" man -t' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # The rest are uncategorised and fairly random... :-) | ||||||
|  | shopt -s histappend | ||||||
|  | PROMPT_COMMAND='echo -ne "\033]0;${USER} on ${HOSTNAME} at ${PWD}\007" && history -a' | ||||||
|  | export PATH=/usr/local/bin:/usr/local/sbin:/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/openwin/bin:/opt/mysql/current/bin | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								samples/Shell/filenames/.cshrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								samples/Shell/filenames/.cshrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | umask 022 | ||||||
|  | set path=(/opt/local/bin /opt/local/sbin /bin /usr/bin) | ||||||
|  | if ( $?prompt ) then | ||||||
|  |         set history=32 | ||||||
|  | endif | ||||||
							
								
								
									
										2
									
								
								samples/Shell/filenames/.login
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								samples/Shell/filenames/.login
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | stty -istrip | ||||||
|  | # setenv TERM `tset -Q -` | ||||||
							
								
								
									
										3
									
								
								samples/Shell/filenames/.zlogout
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								samples/Shell/filenames/.zlogout
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | # Store dirs stack | ||||||
|  | # See ~/.dotfiles/oh-my-zsh/plugins/dirspersist.plugin.zsh | ||||||
|  | dirpersiststore | ||||||
							
								
								
									
										28
									
								
								samples/Shell/filenames/.zprofile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								samples/Shell/filenames/.zprofile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | ############################################################################## | ||||||
|  | #Import the shell-agnostic (Bash or Zsh) environment config | ||||||
|  | ############################################################################## | ||||||
|  | source ~/.profile | ||||||
|  |  | ||||||
|  | ############################################################################## | ||||||
|  | # History Configuration | ||||||
|  | ############################################################################## | ||||||
|  | HISTSIZE=5000               #How many lines of history to keep in memory | ||||||
|  | HISTFILE=~/.zsh_history     #Where to save history to disk | ||||||
|  | SAVEHIST=5000               #Number of history entries to save to disk | ||||||
|  | HISTDUP=erase               #Erase duplicates in the history file | ||||||
|  | setopt    appendhistory     #Append history to the history file (no overwriting) | ||||||
|  | setopt    sharehistory      #Share history across terminals | ||||||
|  | setopt    incappendhistory  #Immediately append to the history file, not just when a term is killed | ||||||
|  |  | ||||||
|  | ############################################################################## | ||||||
|  | # sjl/z-zsh setup | ||||||
|  | ############################################################################## | ||||||
|  | #. ~/.dotfiles/z-zsh/z.sh | ||||||
|  | #function precmd () { | ||||||
|  | #  z --add "$(pwd -P)" | ||||||
|  | #} | ||||||
|  |  | ||||||
|  | ############################################################################## | ||||||
|  | # rupa/z setup | ||||||
|  | ############################################################################## | ||||||
|  | . ~/.dotfiles/z-rupa/z.sh | ||||||
							
								
								
									
										2
									
								
								samples/Shell/filenames/.zshenv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								samples/Shell/filenames/.zshenv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | fpath=($fpath $HOME/.zsh/func) | ||||||
|  | typeset -U fpath | ||||||
							
								
								
									
										1
									
								
								samples/Shell/filenames/bash_logout
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Shell/filenames/bash_logout
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | /usr/bin/clear | ||||||
							
								
								
									
										36
									
								
								samples/Shell/filenames/bash_profile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								samples/Shell/filenames/bash_profile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | ## | ||||||
|  | # Environment... | ||||||
|  | ## | ||||||
|  | # Set up some variables for 'screen' | ||||||
|  | if [ -z "${SCREENDIR}" ];then echo -n | ||||||
|  |         export SCREENDIR="${HOME}/.screen" | ||||||
|  |                 # Save my screen sockets within my $HOME dir | ||||||
|  | fi | ||||||
|  | ## PATH | ||||||
|  | export PATH=/usr/local/bin:/usr/local/sbin:/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/openwin/bin:/opt/mysql/current/bin | ||||||
|  | export MANPATH=/usr/local/man:/usr/share/man | ||||||
|  |  | ||||||
|  | ## Random ENV... | ||||||
|  | # Set $TERM to 'vt100' (a safe default) if, for some | ||||||
|  | # reason, it is set to 'network' (which is not valid!) | ||||||
|  | if [ ${TERM} == 'network' ];then echo -n | ||||||
|  |         export TERM='vt100' | ||||||
|  |                 # not 'nsterm' because if its 'network' we're | ||||||
|  |                 # probly not in Terminal.app | ||||||
|  | fi | ||||||
|  | # Set $COLORTERM, all this does is trick *some* apps into | ||||||
|  | # using color in the terminal, which should happen anyway. | ||||||
|  | if [ -z "${COLORTERM}" ];then echo -n | ||||||
|  |         export COLORTERM="${TERM}" | ||||||
|  | fi | ||||||
|  | # another color option, this one for BSD's ls | ||||||
|  | if [ -z "${CLICOLOR}" ];then echo -n | ||||||
|  |         export CLICOLOR='1' # can be set to anything, actually | ||||||
|  | fi | ||||||
|  | # If $DISPLAY is not already set, set it! | ||||||
|  | if [ -z "${DISPLAY}" ];then echo -n | ||||||
|  |         export DISPLAY=':0' | ||||||
|  | fi | ||||||
|  | ## | ||||||
|  | # Source the bash rc file | ||||||
|  | [ -r "${HOME}/.bashrc" ] && . "${HOME}/.bashrc" | ||||||
							
								
								
									
										119
									
								
								samples/Shell/filenames/bashrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								samples/Shell/filenames/bashrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,119 @@ | |||||||
|  | ## | ||||||
|  | # Functions... *MUCH* better than aliases, and they do more too! | ||||||
|  | # but they clutter the environment... (try typing just 'set' at the prompt) | ||||||
|  | ## | ||||||
|  | # The reason that some of these are... odd... is because | ||||||
|  | # I had to convert them early because bash can't do positional | ||||||
|  | # arguments in aliases! functionName () { do something $@<-arguments ; } | ||||||
|  |  function ls    { command ls -Fh "$@"; } | ||||||
|  |         # 'command ls' to prevent loop; -A for .file, -F for dir/ link@, | ||||||
|  |         # -h for 5k 3m 1g, -o for printing flags (uchg)... | ||||||
|  |  function l     { ls -l "$@"; } # -l to list in long format... | ||||||
|  |  function ll    { l "$@" | less -XF ; } # pipe into 'more' | ||||||
|  |  | ||||||
|  | ## | ||||||
|  | # Tips and Ticks... from http://www.caliban.org/bash/index.shtml | ||||||
|  | ## | ||||||
|  | # The $CDPATH variable is so that you can be in /path/to/something and 'cd' | ||||||
|  | # to 'somethingElse' and end up in /not/the/same/path/to/somethingElse. | ||||||
|  | # iWould use it if it didn't ALWAYS echo the directory it changes to! | ||||||
|  | #CDPATH='.:~' | ||||||
|  | # | ||||||
|  | # HISTIGNORE="&:l:ls:ls *:l *:cd:cd *:[bf]g:exit:quit:q:sleep *" | ||||||
|  |         # History ignores commands that include any l/ls/cd etc | ||||||
|  |         # This kicks-ass! It drops repeats and other useless | ||||||
|  |         # things from the command history! | ||||||
|  |  HISTIGNORE="[bf]g:exit:quit:q:sleep *" | ||||||
|  |         # I want to see l/ls/cd in my history | ||||||
|  |  HISTCONTROL=ignoreboth | ||||||
|  |         # ignores both commands that start with a space or a tab, and duplicates | ||||||
|  |         # other options are as follows: | ||||||
|  |         # `ignorespace' means to not enter lines which begin with a space or tab into the history list. | ||||||
|  |         # `ignoredups' means to not enter lines which match the last entered line. | ||||||
|  |         # `ignoreboth' combines the two options. | ||||||
|  |  | ||||||
|  |  shopt -s cdspell extglob progcomp | ||||||
|  |         # Spell check for 'cd', extended globbing, programmable completion | ||||||
|  |  | ||||||
|  | ## | ||||||
|  | # Bash Completion... Cannibalised from bash_completion 20030929 | ||||||
|  | # Completion defaults... Yes, its long... | ||||||
|  | # Basically this sets up many useful defaults for command completion, these | ||||||
|  | #  should probly be built into bash. Use bash_completions itself if you want | ||||||
|  | #  more functionality and don't mind the hacks it uses. | ||||||
|  |  complete -f -X '!*.?(t)bz2' bunzip2 bzcat bzcmp bzdiff bzegrep bzfgrep bzgrep | ||||||
|  |  complete -f -X '!*.@(zip|ZIP|jar|JAR|exe|EXE|pk3|war|wsz|ear|zargo|xpi)' unzip zipinfo | ||||||
|  |  complete -f -X '*.Z' compress znew | ||||||
|  |  complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' gunzip zcmp zdiff zcat zegrep zfgrep zgrep zless zmore | ||||||
|  |  complete -f -X '!*.Z' uncompress | ||||||
|  |  complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|GIF|JP?(E)G|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA)' ee  display | ||||||
|  |  complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv | ||||||
|  |  complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.Z))' gv ggv | ||||||
|  |  complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi | ||||||
|  |  complete -f -X '!*.@(dvi|DVI)' dvips dviselect dvitype | ||||||
|  |  complete -f -X '!*.@(pdf|PDF)' acroread xpdf | ||||||
|  |  complete -f -X '!*.texi*' makeinfo texi2html | ||||||
|  |  complete -f -X '!*.@(?(la)tex|?(LA)TEX|texi|TEXI|dtx|DTX|ins|INS)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi | ||||||
|  |  complete -f -X '!*.@(mp3|MP3|m3u)' mpg123 mpg321 | ||||||
|  |  complete -f -X '!*.@(mp?(e)g|MP?(E)G|wma|avi|AVI|asf|vob|bin|dat|vcd|ps|pes|fli|viv|rm|ram|yuv|mov|MOV|qt|QT|wmv|mp3|MP3|ogg|OGG|ogm|OGM|mp4|MP4|wav|WAV)' xine | ||||||
|  |  complete -f -X '!*.@(avi|asf|wmv)' aviplay | ||||||
|  |  complete -f -X '!*.@(rm|ram|smi?(l))' realplay | ||||||
|  |  complete -f -X '!*.@(mp?(e)g|avi|mov|qt)' xanim | ||||||
|  |  complete -f -X '!*.@(ogg|OGG|m3u)' ogg123 | ||||||
|  |  complete -f -X '!*.@(mp3|MP3|ogg|OGG|pls|m3u)' gqmpeg freeamp | ||||||
|  |  complete -f -X '!*.@(mp[23]|MP[23]|ogg|OGG|wav|WAV|pls|m3u|xm|mod|s[3t]m|it|mtm|ult|flac)' xmms | ||||||
|  |  complete -f -X '!*.fig' xfig | ||||||
|  |  complete -f -X '!*.@(mid?(i))' timidity playmidi | ||||||
|  |  complete -f -X '.*|*.@(o|so|so.!(conf)|a|tar?(.@(gz|bz2))|tgz|tbz2|rpm|zip|ZIP|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' vi vim gvim rvim view rview rgvim rgview gview emacs | ||||||
|  |  complete -f -X '!*.@(exe|EXE|com|COM|scr|SCR)' wine | ||||||
|  |  complete -f -X '!*.@(zip|ZIP|z|Z|gz|GZ|tgz|TGZ)' bzme | ||||||
|  |  complete -f -X '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx opera w3m galeon curl dillo elinks links | ||||||
|  | # | ||||||
|  |  complete -u su passwd groups # user commands see only users | ||||||
|  |  complete -A stopped -P '%' bg # bg completes with stopped jobs | ||||||
|  |  complete -j -P '%' fg jobs disown # other job commands | ||||||
|  |  complete -v readonly unset export # readonly and unset complete with shell variables | ||||||
|  |  complete -A setopt set # set completes with set options | ||||||
|  |  complete -A shopt shopt # shopt completes with shopt options | ||||||
|  |  complete -A helptopic help # helptopics | ||||||
|  |  complete -a unalias # unalias completes with aliases | ||||||
|  |  complete -A binding bind # bind completes with readline bindings (make this more intelligent) | ||||||
|  |  complete -c command type which man #sudo # type, which, man complete on commands | ||||||
|  |  complete -d pushd cd rmdir # Make directory commands see only directories | ||||||
|  |  complete -W ' ' alias # no filenames for alias, | ||||||
|  |  | ||||||
|  | ## | ||||||
|  | # Set the prompt | ||||||
|  | ## | ||||||
|  |  PS1="[\h:\w] \[\033[1;34m\]\u\[\033[0m\]\\$ " | ||||||
|  |         # My prompt line:       "[gaelicWizard:~/Documents] user$ " user is in blue | ||||||
|  |         # Or:                   "[gaelicWizard:~/Documents] root# " root is in blue | ||||||
|  | ## | ||||||
|  | # Aliases: | ||||||
|  | ## | ||||||
|  | # Aliases frequently used... | ||||||
|  |  alias ..='cd ..;l' | ||||||
|  |  alias cd..='cd ..' | ||||||
|  |  alias which='type' # 'which' in (t)csh is same(?) as 'type' in bash... | ||||||
|  |  alias quit='exit' | ||||||
|  |  alias q='quit' # and 'q' is even shorter! :-D | ||||||
|  |  alias v='vim' | ||||||
|  |  alias rehash='. ~/.bashrc;' # source ~/.bashrc after I edit it | ||||||
|  |  alias pg='ps -afe|grep -v grep|grep' | ||||||
|  |  alias make='gmake' | ||||||
|  |  alias patch='gpatch' | ||||||
|  |  alias sed='gsed' | ||||||
|  |  alias awk='nawk' | ||||||
|  |  alias diff='gdiff' | ||||||
|  |  alias grep='ggrep' | ||||||
|  |  alias find='gfind' | ||||||
|  |  alias ps='/usr/ucb/ps' | ||||||
|  |  alias whoami='/usr/ucb/whoami' | ||||||
|  |  alias ping='ping -s' | ||||||
|  |  alias man='GROFF_NO_SGR= TCAT="less -s" TROFF="groff -Tascii" man -t' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # The rest are uncategorised and fairly random... :-) | ||||||
|  | shopt -s histappend | ||||||
|  | PROMPT_COMMAND='echo -ne "\033]0;${USER} on ${HOSTNAME} at ${PWD}\007" && history -a' | ||||||
|  | export PATH=/usr/local/bin:/usr/local/sbin:/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/openwin/bin:/opt/mysql/current/bin | ||||||
							
								
								
									
										5
									
								
								samples/Shell/filenames/cshrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								samples/Shell/filenames/cshrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | umask 022 | ||||||
|  | set path=(/opt/local/bin /opt/local/sbin /bin /usr/bin) | ||||||
|  | if ( $?prompt ) then | ||||||
|  |         set history=32 | ||||||
|  | endif | ||||||
							
								
								
									
										2
									
								
								samples/Shell/filenames/login
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								samples/Shell/filenames/login
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | stty -istrip | ||||||
|  | # setenv TERM `tset -Q -` | ||||||
							
								
								
									
										1
									
								
								samples/Shell/filenames/profile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Shell/filenames/profile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export PATH="/usr/local/bin:/usr/bin:/bin" | ||||||
							
								
								
									
										1
									
								
								samples/Shell/filenames/zlogin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Shell/filenames/zlogin
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export PATH="/usr/local/bin:/usr/bin:/bin" | ||||||
							
								
								
									
										3
									
								
								samples/Shell/filenames/zlogout
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								samples/Shell/filenames/zlogout
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | # Store dirs stack | ||||||
|  | # See ~/.dotfiles/oh-my-zsh/plugins/dirspersist.plugin.zsh | ||||||
|  | dirpersiststore | ||||||
							
								
								
									
										28
									
								
								samples/Shell/filenames/zprofile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								samples/Shell/filenames/zprofile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | ############################################################################## | ||||||
|  | #Import the shell-agnostic (Bash or Zsh) environment config | ||||||
|  | ############################################################################## | ||||||
|  | source ~/.profile | ||||||
|  |  | ||||||
|  | ############################################################################## | ||||||
|  | # History Configuration | ||||||
|  | ############################################################################## | ||||||
|  | HISTSIZE=5000               #How many lines of history to keep in memory | ||||||
|  | HISTFILE=~/.zsh_history     #Where to save history to disk | ||||||
|  | SAVEHIST=5000               #Number of history entries to save to disk | ||||||
|  | HISTDUP=erase               #Erase duplicates in the history file | ||||||
|  | setopt    appendhistory     #Append history to the history file (no overwriting) | ||||||
|  | setopt    sharehistory      #Share history across terminals | ||||||
|  | setopt    incappendhistory  #Immediately append to the history file, not just when a term is killed | ||||||
|  |  | ||||||
|  | ############################################################################## | ||||||
|  | # sjl/z-zsh setup | ||||||
|  | ############################################################################## | ||||||
|  | #. ~/.dotfiles/z-zsh/z.sh | ||||||
|  | #function precmd () { | ||||||
|  | #  z --add "$(pwd -P)" | ||||||
|  | #} | ||||||
|  |  | ||||||
|  | ############################################################################## | ||||||
|  | # rupa/z setup | ||||||
|  | ############################################################################## | ||||||
|  | . ~/.dotfiles/z-rupa/z.sh | ||||||
							
								
								
									
										2
									
								
								samples/Shell/filenames/zshenv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								samples/Shell/filenames/zshenv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | fpath=($fpath $HOME/.zsh/func) | ||||||
|  | typeset -U fpath | ||||||
							
								
								
									
										1
									
								
								samples/Shell/filenames/zshrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Shell/filenames/zshrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export PATH="/usr/local/bin:/usr/bin:/bin" | ||||||
							
								
								
									
										3
									
								
								samples/Shell/invalid-shebang.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								samples/Shell/invalid-shebang.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | #!/usr/bin/env  | ||||||
|  |  | ||||||
|  | echo "wat" | ||||||
							
								
								
									
										1
									
								
								samples/Text/mac.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Text/mac.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | line 1 | ||||||
| @@ -65,6 +65,14 @@ class TestBlob < Test::Unit::TestCase | |||||||
|     assert_equal ["module Foo", "end", ""], blob("Ruby/foo.rb").lines |     assert_equal ["module Foo", "end", ""], blob("Ruby/foo.rb").lines | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   def test_mac_format | ||||||
|  |     assert blob("Text/mac.txt").mac_format? | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   def test_lines_mac_format | ||||||
|  |     assert_equal ["line 1", "line 2", ""], blob("Text/mac.txt").lines | ||||||
|  |   end | ||||||
|  |  | ||||||
|   def test_size |   def test_size | ||||||
|     assert_equal 15, blob("Ruby/foo.rb").size |     assert_equal 15, blob("Ruby/foo.rb").size | ||||||
|   end |   end | ||||||
| @@ -263,7 +271,7 @@ class TestBlob < Test::Unit::TestCase | |||||||
|     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  |     # large binary blobs should fail on size check first, not call | ||||||
|     # into charlock_holmes and alloc big buffers for testing encoding |     # into charlock_holmes and alloc big buffers for testing encoding | ||||||
|     b = blob("Binary/octocat.ai") |     b = blob("Binary/octocat.ai") | ||||||
|     b.expects(:binary?).never |     b.expects(:binary?).never | ||||||
| @@ -283,11 +291,10 @@ class TestBlob < Test::Unit::TestCase | |||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_colorize |   def test_colorize | ||||||
|     assert_equal <<-HTML, blob("Ruby/foo.rb").colorize |     assert_equal <<-HTML.chomp, blob("Ruby/foo.rb").colorize | ||||||
| <div class="highlight"><pre><span class="k">module</span> <span class="nn">Foo</span> | <div class="highlight"><pre><span class="k">module</span> <span class="nn">Foo</span> | ||||||
| <span class="k">end</span> | <span class="k">end</span> | ||||||
| </pre> | </pre></div> | ||||||
| </div> |  | ||||||
|     HTML |     HTML | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -26,6 +26,7 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal Lexer['HTML'], Language['HTML'].lexer |     assert_equal Lexer['HTML'], Language['HTML'].lexer | ||||||
|     assert_equal Lexer['HTML+Django/Jinja'], Language['HTML+Django'].lexer |     assert_equal Lexer['HTML+Django/Jinja'], Language['HTML+Django'].lexer | ||||||
|     assert_equal Lexer['HTML+PHP'], Language['HTML+PHP'].lexer |     assert_equal Lexer['HTML+PHP'], Language['HTML+PHP'].lexer | ||||||
|  |     assert_equal Lexer['HTTP'], Language['HTTP'].lexer | ||||||
|     assert_equal Lexer['JSON'], Language['JSON'].lexer |     assert_equal Lexer['JSON'], Language['JSON'].lexer | ||||||
|     assert_equal Lexer['Java'], Language['ChucK'].lexer |     assert_equal Lexer['Java'], Language['ChucK'].lexer | ||||||
|     assert_equal Lexer['Java'], Language['Java'].lexer |     assert_equal Lexer['Java'], Language['Java'].lexer | ||||||
| @@ -51,7 +52,7 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal Lexer['Verilog'], Language['Verilog'].lexer |     assert_equal Lexer['Verilog'], Language['Verilog'].lexer | ||||||
|     assert_equal Lexer['XSLT'], Language['XSLT'].lexer |     assert_equal Lexer['XSLT'], Language['XSLT'].lexer | ||||||
|     assert_equal Lexer['aspx-vb'], Language['ASP'].lexer |     assert_equal Lexer['aspx-vb'], Language['ASP'].lexer | ||||||
|     assert_equal Lexer['haXe'], Language['HaXe'].lexer |     assert_equal Lexer['haXe'], Language['Haxe'].lexer | ||||||
|     assert_equal Lexer['reStructuredText'], Language['reStructuredText'].lexer |     assert_equal Lexer['reStructuredText'], Language['reStructuredText'].lexer | ||||||
|   end |   end | ||||||
|  |  | ||||||
| @@ -60,6 +61,7 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal Language['ASP'], Language.find_by_alias('aspx') |     assert_equal Language['ASP'], Language.find_by_alias('aspx') | ||||||
|     assert_equal Language['ASP'], Language.find_by_alias('aspx-vb') |     assert_equal Language['ASP'], Language.find_by_alias('aspx-vb') | ||||||
|     assert_equal Language['ActionScript'], Language.find_by_alias('as3') |     assert_equal Language['ActionScript'], Language.find_by_alias('as3') | ||||||
|  |     assert_equal Language['ApacheConf'], Language.find_by_alias('apache') | ||||||
|     assert_equal Language['Assembly'], Language.find_by_alias('nasm') |     assert_equal Language['Assembly'], Language.find_by_alias('nasm') | ||||||
|     assert_equal Language['Batchfile'], Language.find_by_alias('bat') |     assert_equal Language['Batchfile'], Language.find_by_alias('bat') | ||||||
|     assert_equal Language['C#'], Language.find_by_alias('c#') |     assert_equal Language['C#'], Language.find_by_alias('c#') | ||||||
| @@ -68,6 +70,7 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal Language['C++'], Language.find_by_alias('c++') |     assert_equal Language['C++'], Language.find_by_alias('c++') | ||||||
|     assert_equal Language['C++'], Language.find_by_alias('cpp') |     assert_equal Language['C++'], Language.find_by_alias('cpp') | ||||||
|     assert_equal Language['CoffeeScript'], Language.find_by_alias('coffee') |     assert_equal Language['CoffeeScript'], Language.find_by_alias('coffee') | ||||||
|  |     assert_equal Language['CoffeeScript'], Language.find_by_alias('coffee-script') | ||||||
|     assert_equal Language['ColdFusion'], Language.find_by_alias('cfm') |     assert_equal Language['ColdFusion'], Language.find_by_alias('cfm') | ||||||
|     assert_equal Language['Common Lisp'], Language.find_by_alias('common-lisp') |     assert_equal Language['Common Lisp'], Language.find_by_alias('common-lisp') | ||||||
|     assert_equal Language['Common Lisp'], Language.find_by_alias('lisp') |     assert_equal Language['Common Lisp'], Language.find_by_alias('lisp') | ||||||
| @@ -78,7 +81,9 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal Language['Emacs Lisp'], Language.find_by_alias('emacs-lisp') |     assert_equal Language['Emacs Lisp'], Language.find_by_alias('emacs-lisp') | ||||||
|     assert_equal Language['Gettext Catalog'], Language.find_by_alias('pot') |     assert_equal Language['Gettext Catalog'], Language.find_by_alias('pot') | ||||||
|     assert_equal Language['HTML'], Language.find_by_alias('html') |     assert_equal Language['HTML'], Language.find_by_alias('html') | ||||||
|  |     assert_equal Language['HTML'], Language.find_by_alias('xhtml') | ||||||
|     assert_equal Language['HTML+ERB'], Language.find_by_alias('html+erb') |     assert_equal Language['HTML+ERB'], Language.find_by_alias('html+erb') | ||||||
|  |     assert_equal Language['HTML+ERB'], Language.find_by_alias('erb') | ||||||
|     assert_equal Language['IRC log'], Language.find_by_alias('irc') |     assert_equal Language['IRC log'], Language.find_by_alias('irc') | ||||||
|     assert_equal Language['JSON'], Language.find_by_alias('json') |     assert_equal Language['JSON'], Language.find_by_alias('json') | ||||||
|     assert_equal Language['Java Server Pages'], Language.find_by_alias('jsp') |     assert_equal Language['Java Server Pages'], Language.find_by_alias('jsp') | ||||||
| @@ -87,6 +92,7 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal Language['JavaScript'], Language.find_by_alias('js') |     assert_equal Language['JavaScript'], Language.find_by_alias('js') | ||||||
|     assert_equal Language['Literate Haskell'], Language.find_by_alias('lhs') |     assert_equal Language['Literate Haskell'], Language.find_by_alias('lhs') | ||||||
|     assert_equal Language['Literate Haskell'], Language.find_by_alias('literate-haskell') |     assert_equal Language['Literate Haskell'], Language.find_by_alias('literate-haskell') | ||||||
|  |     assert_equal Language['Objective-C'], Language.find_by_alias('objc') | ||||||
|     assert_equal Language['OpenEdge ABL'], Language.find_by_alias('openedge') |     assert_equal Language['OpenEdge ABL'], Language.find_by_alias('openedge') | ||||||
|     assert_equal Language['OpenEdge ABL'], Language.find_by_alias('progress') |     assert_equal Language['OpenEdge ABL'], Language.find_by_alias('progress') | ||||||
|     assert_equal Language['OpenEdge ABL'], Language.find_by_alias('abl') |     assert_equal Language['OpenEdge ABL'], Language.find_by_alias('abl') | ||||||
| @@ -106,6 +112,7 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal Language['VimL'], Language.find_by_alias('vim') |     assert_equal Language['VimL'], Language.find_by_alias('vim') | ||||||
|     assert_equal Language['VimL'], Language.find_by_alias('viml') |     assert_equal Language['VimL'], Language.find_by_alias('viml') | ||||||
|     assert_equal Language['reStructuredText'], Language.find_by_alias('rst') |     assert_equal Language['reStructuredText'], Language.find_by_alias('rst') | ||||||
|  |     assert_equal Language['YAML'], Language.find_by_alias('yml') | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_groups |   def test_groups | ||||||
| @@ -224,10 +231,16 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert_equal [Language['Ruby']], Language.find_by_filename('foo/bar.rb') |     assert_equal [Language['Ruby']], Language.find_by_filename('foo/bar.rb') | ||||||
|     assert_equal [Language['Ruby']], Language.find_by_filename('Rakefile') |     assert_equal [Language['Ruby']], Language.find_by_filename('Rakefile') | ||||||
|     assert_equal [Language['Ruby']], Language.find_by_filename('PKGBUILD.rb') |     assert_equal [Language['Ruby']], Language.find_by_filename('PKGBUILD.rb') | ||||||
|  |     assert_equal Language['ApacheConf'], Language.find_by_filename('httpd.conf').first | ||||||
|  |     assert_equal [Language['ApacheConf']], Language.find_by_filename('.htaccess') | ||||||
|  |     assert_equal Language['Nginx'], Language.find_by_filename('nginx.conf').first | ||||||
|     assert_equal ['C', 'C++', 'Objective-C'], Language.find_by_filename('foo.h').map(&:name).sort |     assert_equal ['C', 'C++', 'Objective-C'], Language.find_by_filename('foo.h').map(&:name).sort | ||||||
|     assert_equal [], Language.find_by_filename('rb') |     assert_equal [], Language.find_by_filename('rb') | ||||||
|     assert_equal [], Language.find_by_filename('.rb') |     assert_equal [], Language.find_by_filename('.rb') | ||||||
|     assert_equal [], Language.find_by_filename('.nkt') |     assert_equal [], Language.find_by_filename('.nkt') | ||||||
|  |     assert_equal [Language['Shell']], Language.find_by_filename('.bashrc') | ||||||
|  |     assert_equal [Language['Shell']], Language.find_by_filename('bash_profile') | ||||||
|  |     assert_equal [Language['Shell']], Language.find_by_filename('.zshrc') | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_find |   def test_find | ||||||
| @@ -286,6 +299,11 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|     assert !Language.ace_modes.include?(Language['FORTRAN']) |     assert !Language.ace_modes.include?(Language['FORTRAN']) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   def test_wrap | ||||||
|  |     assert_equal false, Language['C'].wrap | ||||||
|  |     assert_equal true, Language['Markdown'].wrap | ||||||
|  |   end | ||||||
|  |  | ||||||
|   def test_extensions |   def test_extensions | ||||||
|     assert Language['Perl'].extensions.include?('.pl') |     assert Language['Perl'].extensions.include?('.pl') | ||||||
|     assert Language['Python'].extensions.include?('.py') |     assert Language['Python'].extensions.include?('.py') | ||||||
| @@ -314,12 +332,11 @@ class TestLanguage < Test::Unit::TestCase | |||||||
|  |  | ||||||
|  |  | ||||||
|   def test_colorize |   def test_colorize | ||||||
|     assert_equal <<-HTML, Language['Ruby'].colorize("def foo\n  'foo'\nend\n") |     assert_equal <<-HTML.chomp, Language['Ruby'].colorize("def foo\n  'foo'\nend\n") | ||||||
| <div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span> | <div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span> | ||||||
|   <span class="s1">'foo'</span> |   <span class="s1">'foo'</span> | ||||||
| <span class="k">end</span> | <span class="k">end</span> | ||||||
| </pre> | </pre></div> | ||||||
| </div> |  | ||||||
|     HTML |     HTML | ||||||
|   end |   end | ||||||
| end | end | ||||||
|   | |||||||
| @@ -1,4 +1,6 @@ | |||||||
| require 'linguist/samples' | require 'linguist/samples' | ||||||
|  | require 'tempfile' | ||||||
|  | require 'yajl' | ||||||
|  |  | ||||||
| require 'test/unit' | require 'test/unit' | ||||||
|  |  | ||||||
| @@ -12,6 +14,19 @@ class TestSamples < Test::Unit::TestCase | |||||||
|     # Just warn, it shouldn't scare people off by breaking the build. |     # Just warn, it shouldn't scare people off by breaking the build. | ||||||
|     if serialized['md5'] != latest['md5'] |     if serialized['md5'] != latest['md5'] | ||||||
|       warn "Samples database is out of date. Run `bundle exec rake samples`." |       warn "Samples database is out of date. Run `bundle exec rake samples`." | ||||||
|  |  | ||||||
|  |       expected = Tempfile.new('expected.json') | ||||||
|  |       expected.write Yajl::Encoder.encode(serialized, :pretty => true) | ||||||
|  |       expected.close | ||||||
|  |  | ||||||
|  |       actual = Tempfile.new('actual.json') | ||||||
|  |       actual.write Yajl::Encoder.encode(latest, :pretty => true) | ||||||
|  |       actual.close | ||||||
|  |  | ||||||
|  |       warn `diff #{expected.path} #{actual.path}` | ||||||
|  |  | ||||||
|  |       expected.unlink | ||||||
|  |       actual.unlink | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -94,6 +94,8 @@ class TestTokenizer < Test::Unit::TestCase | |||||||
|     assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby.script!")[0] |     assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby.script!")[0] | ||||||
|     assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby2.script!")[0] |     assert_equal "SHEBANG#!ruby", tokenize(:"Ruby/ruby2.script!")[0] | ||||||
|     assert_equal "SHEBANG#!node", tokenize(:"JavaScript/js.script!")[0] |     assert_equal "SHEBANG#!node", tokenize(:"JavaScript/js.script!")[0] | ||||||
|  |     assert_equal "SHEBANG#!php", tokenize(:"PHP/php.script!")[0] | ||||||
|  |     assert_equal "echo", tokenize(:"Shell/invalid-shebang.sh")[0] | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_javascript_tokens |   def test_javascript_tokens | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user