diff --git a/samples/Julia/julia b/samples/Julia/julia new file mode 100644 index 00000000..c8fbb1f3 --- /dev/null +++ b/samples/Julia/julia @@ -0,0 +1,60 @@ +#!/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)