{ pkgs, lib, ... }: { # Executables jq = "${pkgs.jq}/bin/jq"; fzf = "${pkgs.fzf}/bin/fzf"; gomplate = "${pkgs.gomplate}/bin/gomplate"; nixfmt = "${pkgs.nixfmt}/bin/nixfmt"; bat = "${pkgs.bat}/bin/bat"; perl = "${pkgs.perl}/bin/perl"; # ANSI Colors bold = "\\x1b[1m"; blinkred = "\\x1b[31;5m"; red = "\\x1b[31m"; green = "\\x1b[32m"; yellow = "\\x1b[33m"; blue = "\\x1b[34m"; magenta = "\\x1b[35m"; clear = "\\x1b[0m"; # Misc functionality # flatten takes a string that might be formatted like this: # # '' # A string # with some random indents # # and # # newlines # '' # # And turns it into this: # # '' # A string # with some random indents # and # newlines # '' # # Useful for keeping track of gomplates logic # while keeping the template flat # # flatten :: String -> String flatten = with lib; let stripPrefixSpace = s: if hasPrefix " " s then stripPrefixSpace ((substring 1 (stringLength s)) s) else s; in (flip pipe) [ (splitString "\n") (remove "") (map stripPrefixSpace) (concatStringsSep "\n") ]; }