rad/util
A motley assortment of utility functions.
Constants
pub const lookups: List(
#(List(String), List(#(String, List(String)))),
) = [
#(
["color", "background"],
[
#("boi-blue", ["166", "240", "252"]),
#("buttercup", ["255", "215", "175"]),
#("hot-pink", ["217", "0", "184"]),
#("mint", ["182", "255", "234"]),
#("peach", ["255", "175", "194"]),
#("pink", ["255", "175", "243"]),
#("purple", ["217", "181", "255"]),
],
),
]
Custom color Lookups
for rad
.
Functions
pub fn ebin_paths() -> Result(List(String), Nil)
Results in a list of paths comprising all compiled Erlang modules for a
project and its dependencies on success, or Nil
on failure.
pub fn encode_json(data: a) -> String
Returns a JSON string representation for any given data.
pub fn erlang_run(with args: List(String), opt options: List(
CommandOpt,
)) -> Result(String, Snag)
Runs Erlang with the given arguments and shellout
CommandOpt
s. All
dependency and project modules are preloaded and accessible.
pub fn file_exists(path: String) -> Bool
Returns a boolean indicating whether or not a file exists at the given
path
.
pub fn file_write(contents contents: String, to path: String) -> Result(
String,
Snag,
)
Tries to write some contents
to a file at the given path
.
Results in an empty string on success, or a
Snag
on failure.
pub fn is_directory(path: String) -> Bool
Returns a boolean indicating whether or not a directory exists at the given
path
.
pub fn javascript_run(with args: List(String), opt options: List(
CommandOpt,
)) -> Result(String, Snag)
Runs Node.js with the given arguments and shellout
CommandOpt
s. All
dependency and project modules are preloaded and accessible.
pub fn make_directory(path: String) -> Result(String, Snag)
Tries to create a new directory at the given path
.
No attempt is made to create any missing parent directories.
Results in an empty string on success, or a
Snag
on failure.
pub fn quiet_or_print(input: CommandInput) -> fn(String) -> Nil
Removes from the given input
a flag specific to running rad
’s unit
tests.
Returns a function that does nothing if rad
’s test flag is present in the
given input
, otherwise
io.print
.
Useful for suppressing output while running rad
’s unit tests.
pub fn quiet_or_println(input: CommandInput) -> fn(String) -> Nil
Returns a function that does nothing if rad
’s test flag is present in the
given input
, otherwise
io.println
.
Useful for suppressing output while running rad
’s unit tests.
pub fn quiet_or_spawn(input: CommandInput) -> List(CommandOpt)
Instructs a
shellout.command
to
capture all output if rad
’s test flag is present in the given input
,
otherwise spawns the subprocess with stdout and stderr piped to its parent.
Useful for suppressing output while running rad
’s unit tests.
pub fn recursive_delete(path: String) -> Result(String, Snag)
Tries to recursively delete the given path
.
If the path
is a directory, it will be deleted along with all of its
contents.
Results in an empty string on success, or a
Snag
on failure.
pub fn refuse_erlang() -> Result(String, Snag)
Results in an error meant to notify users that a Task
cannot be carried out using the Erlang runtime.
pub fn relay_flags(flags: Map(String, Contents)) -> List(String)
Reconstructs a list of strings from a processed flag
Map
.
Useful for relaying the processed flags from a
CommandInput
to a new
process.
pub fn rename(from source: String, to dest: String) -> Result(
String,
Snag,
)
Tries to move a given source
path to a new location.
Results in an empty string on success, or a
Snag
on failure.
pub fn snag_pretty_print(snag: Snag) -> String
Turns a Snag
into a multiline
string optimized for readability.
pub fn working_directory() -> Result(String, Snag)
Results in the current working directory path on success, or a
Snag
on failure.