Page
Library
Module
Module type
Parameter
Class
Class type
Source
FeatherSourceprocess constructs a new cmd that can be run with run or collect
|. is Feather's version of a "|" in bash; pipe the first process's stdout to the next's stdin.
and_ is feather's version of a "&&" in bash. See Infix module for more.
or_ is feather's version of a "||" in bash. See Infix module for more.
sequence is feather's version of a ";" in bash. See Infix module for more.
Run a command without collecting anything
Various collection possibilities, to be used with collect
val collect :
?cwd:Base.string ->
?env:(Base.string * Base.string) Base.list ->
'a what_to_collect ->
cmd ->
'a collect col cmd runs cmd, collecting the outputs specified by col along the way and returning them. The return type depends on what is collected.
val run_in_background :
?cwd:Base.string ->
?env:(Base.string * Base.string) Base.list ->
cmd ->
Base.unit background_processval collect_in_background :
?cwd:Base.string ->
?env:(Base.string * Base.string) Base.list ->
'a what_to_collect ->
cmd ->
'a background_processcollect_in_background and run_in_background run the command in a thread.
Use wait to wait for the process to finish (and retreive whatever you collected).
wait for the result of run_in_background or collect_in_background.
map_lines within a sequence of pipes will be run with a thread. Same goes for filter_lines, mapi_lines, etc.
stdout_to_stderr and stderr_to_stdout are NOT composable! Think of these functions as each creating a new command with the given redirection.
Applying both will result in no output to either stdout or stderr. flip_stdout_and_stderr should be easy to write if anyone should need it.
val find :
?include_starting_dir:Base.bool ->
?ignore_hidden:Base.bool ->
?kind:[ `Files | `Directories ] ->
?name:Base.string ->
?depth:Base.int ->
Base.string ->
cmdfind lists files and/or directories, optionally filtering by name.
?depth: The maximum search depth, defaults to infinity.
?include_starting_dir: whether to include the starting directory passed into find. Defaults to false, notably different than the unix find utility.
in_ is the directory that should be rg'd: rg <search> <in>. Without it, it'll filter stdin, just rg <search>
of_list emulates a Feather.cmd, each item in the list becomes a line on stdout.
lines splits a string into the list of its lines
devnull is easier to type than "/dev/null"
val fzf :
?cwd:Base.string ->
?env:(Base.string * Base.string) Base.list ->
cmd ->
Base.string Base.optionfzf runs the command, and fuzzy finds the stdout. Returns None if no item was chosen, Some str otherwise
Note that fzf is a way to to run a cmd and does not in itself return a cmd.