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(deno deno_args: List(String), or nodejs_args: List(
String,
), opt options: List(CommandOpt)) -> Result(String, Snag)
Runs Deno or Node.js (depending on the JavaScript runtime specified in your
project’s gleam.toml
config) with the given arguments and shellout
CommandOpt
s. All
dependency and project modules are preloaded and accessible.
pub fn javascript_runtime() -> String
Returns a JavaScript runtime command name based on your project’s
gleam.toml
config.
Can be "node"
or "deno"
; "node"
is the default.
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.