mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Julia
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Julia
		
	
	
	
	
	
| #!/usr/bin/env julia
 | |
| 
 | |
| # From https://github.com/JoshCheek/language-sampler-for-fullpath/blob/b766dcdbd249ec63516f491390a75315e78cba95/julia/fullpath
 | |
| help_screen = """
 | |
| usage: fullpath *[relative-paths] [-c]
 | |
| 
 | |
|   Prints the fullpath of the paths
 | |
|   If no paths are given as args, it will read them from stdin
 | |
| 
 | |
|   If there is only one path, the trailing newline is omitted
 | |
| 
 | |
|   The -c flag will copy the results into your pasteboard
 | |
| """
 | |
| 
 | |
| help  = false
 | |
| copy  = false
 | |
| dir   = pwd()
 | |
| paths = []
 | |
| 
 | |
| for arg = ARGS
 | |
|   if arg == "-h" || arg == "--help"
 | |
|     help = true
 | |
|   elseif arg == "-c" || arg == "--copy"
 | |
|     copy = true
 | |
|   elseif arg != ""
 | |
|     push!(paths, arg)
 | |
|   end
 | |
| end
 | |
| 
 | |
| if help
 | |
|   print(help_screen)
 | |
|   exit()
 | |
| end
 | |
| 
 | |
| function notempty(string)
 | |
|   return !isempty(string)
 | |
| end
 | |
| 
 | |
| if length(paths) == 0
 | |
|   paths = filter(notempty, map(chomp, readlines()))
 | |
| end
 | |
| 
 | |
| function print_paths(stream, paths)
 | |
|   if length(paths) == 1
 | |
|     path = paths[1]
 | |
|     print(stream, "$dir/$path")
 | |
|   else
 | |
|     for path = paths
 | |
|       println(stream, "$dir/$path")
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| if copy
 | |
|   read, write, process = readandwrite(`pbcopy`)
 | |
|   print_paths(write, paths)
 | |
|   close(write)
 | |
| end
 | |
| 
 | |
| print_paths(STDOUT, paths)
 |