| 
									
										
										
										
											2016-10-10 19:26:29 +00:00
										 |  |  | #!/usr/bin/env bash | 
					
						
							| 
									
										
										
										
											2016-09-18 22:58:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-22 12:52:49 +00:00
										 |  |  | # Authors: w0rp <devw0rp@gmail.com>, hauleth <lukasz@niemier.pl> | 
					
						
							| 
									
										
										
										
											2016-10-03 18:20:13 +00:00
										 |  |  | # Description: This script implements a wrapper for any program which does not accept | 
					
						
							|  |  |  | #   stdin input on most Unix machines. The input to the script is read to a | 
					
						
							|  |  |  | #   temporary file, and the first argument sets a particular file extension | 
					
						
							|  |  |  | #   for the temporary file. | 
					
						
							| 
									
										
										
										
											2016-09-18 22:58:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-22 12:52:49 +00:00
										 |  |  | set -eu | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-03 18:20:13 +00:00
										 |  |  | # All of the following arguments are read as command to run. | 
					
						
							| 
									
										
										
										
											2016-09-18 22:58:04 +00:00
										 |  |  | file_extension="$1" | 
					
						
							|  |  |  | shift | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-22 12:52:49 +00:00
										 |  |  | temp_dir=$(mktemp -d 2>/dev/null || mktemp -d -t 'ale_linter') | 
					
						
							|  |  |  | temp_file="$temp_dir/file$file_extension" | 
					
						
							|  |  |  | trap 'rm -r "$temp_dir"' EXIT | 
					
						
							| 
									
										
										
										
											2016-09-18 22:58:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-22 12:52:49 +00:00
										 |  |  | # In perfect world it wouldn't be needed, but some tools (`go vet`, I am looking | 
					
						
							|  |  |  | # at you) do not fit in line and require filename ending. Otherwise it would be | 
					
						
							|  |  |  | # simple as | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #     "$@" /dev/stdin | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # without all that hackery with copying `/dev/stdin` | 
					
						
							|  |  |  | cp /dev/stdin "$temp_file" | 
					
						
							| 
									
										
										
										
											2016-09-18 22:58:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | "$@" "$temp_file" |