# Helpers for converting values to lua {lib}: rec { # yes? no. yesNo = value: if value then "yes" else "no"; # Convert a null value to lua's nil nullString = value: if value == null then "nil" else "'${value}'"; # convert an expression to lua expToLua = exp: if builtins.isList exp then listToLuaTable exp # if list, convert to lua table else if builtins.isAttrs exp then attrsetToLuaTable exp # if attrs, convert to table else if builtins.isBool exp then lib.boolToString exp # if bool, convert to string else if builtins.isInt exp then builtins.toString exp # if int, convert to string else (builtins.toJSON exp); # otherwise jsonify the value and print as is # convert list to a lua table listToLuaTable = list: "{ " + (builtins.concatStringsSep ", " (map expToLua list)) + " }"; # convert attrset to a lua table attrsetToLuaTable = attrset: "{ " + ( builtins.concatStringsSep ", " ( lib.mapAttrsToList ( name: value: name + " = " + (expToLua value) ) attrset ) ) + " }"; }