summaryrefslogtreecommitdiff
path: root/modules/profiles/dev/sql.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/profiles/dev/sql.nix')
-rw-r--r--modules/profiles/dev/sql.nix105
1 files changed, 105 insertions, 0 deletions
diff --git a/modules/profiles/dev/sql.nix b/modules/profiles/dev/sql.nix
new file mode 100644
index 0000000..c2d4894
--- /dev/null
+++ b/modules/profiles/dev/sql.nix
@@ -0,0 +1,105 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib;
+let
+ cfg = config.nixfiles.modules.profiles.dev.sql;
+in
+{
+ options.nixfiles.modules.profiles.dev.sql.enable =
+ mkEnableOption "SQL stuff and database management tools"
+ // {
+ default = config.nixfiles.modules.profiles.dev.enable;
+ };
+
+ config = mkIf cfg.enable {
+ hm = {
+ home.packages = with pkgs; [
+ pgcli
+ litecli
+ ];
+
+ xdg =
+ let
+ mainSection = {
+ destructive_warning = "True";
+ enable_pager = "True";
+ keyword_casing = "auto";
+ less_chatty = "True";
+ log_file = "/dev/null";
+ log_level = "CRITICAL";
+ multi_line = "False";
+ syntax_style = "default";
+ table_format = "fancy_grid";
+ };
+
+ colorsSection = with config.colors.withHashtag; {
+ "arg-toolbar" = "noinherit bold";
+ "arg-toolbar.text" = "nobold";
+ "bottom-toolbar" = "bg:${base01} ${base06}";
+ "bottom-toolbar.off" = "bg:${base01} ${base02}";
+ "bottom-toolbar.on" = "bg:${base01} ${base07}";
+ "bottom-toolbar.transaction.failed" = "bg:${base01} ${base08} bold";
+ "bottom-toolbar.transaction.valid" = "bg:${base01} ${base0B} bold";
+ "completion-menu.completion" = "bg:${base01} ${base06}";
+ "completion-menu.completion.current" = "bg:${base06} ${base01}";
+ "completion-menu.meta.completion" = "bg:${base01} ${base13}";
+ "completion-menu.meta.completion.current" = "bg:${base09} ${base01}";
+ "completion-menu.multi-column-meta" = "bg:${base09} ${base01}";
+ "scrollbar" = "bg:${base01}";
+ "scrollbar.arrow" = "bg:${base01}";
+ "search" = "bg:${base17} ${base07}";
+ "search-toolbar" = "noinherit bold";
+ "search-toolbar.text" = "nobold";
+ "search.current" = "bg:${base14} ${base07}";
+ "selected" = "bg:${base0D} ${base07}";
+ "system-toolbar" = "noinherit bold";
+ };
+
+ mkCliConfig =
+ { name, custom }:
+ {
+ "${name}/config" = {
+ text = generators.toINI { } {
+ main = mainSection // custom;
+ colors = mapAttrs (_: v: "'${v}'") colorsSection;
+ };
+ };
+ };
+ in
+ {
+ configFile = mkMerge (
+ map mkCliConfig [
+ {
+ name = "pgcli";
+ custom = {
+ prompt = "'\\u@\\h:\\d> '";
+ multi_line_mode = "psql";
+ on_error = "STOP";
+ auto_expand = "True";
+ expand = "True";
+ keyring = "False";
+ vi = "True";
+ casing_file = "/dev/null";
+ history_file = "/dev/null";
+ };
+ }
+ {
+ name = "litecli";
+ custom = {
+ prompt = "'\\d> '";
+ prompt_continuation = "'-> '";
+ auto_vertical_output = "True";
+ key_bindings = "vi";
+ audit_log = "/dev/null";
+ };
+ }
+ ]
+ );
+ };
+ };
+ };
+}