diff --git a/flake.nix b/flake.nix index a3405d3..e4b1c69 100644 --- a/flake.nix +++ b/flake.nix @@ -130,6 +130,7 @@ prettify-log = pkgs.callPackage ./package/prettify-log/default.nix rust.commonArgs; pg-from = pkgs.callPackage ./package/postgres/pg-from/default.nix rust.commonArgs; pg-schema = pkgs.callPackage ./package/postgres/pg-schema/default.nix rust.commonArgs; + wpg_dupmall = pkgs.callPackage ./package/postgres/wpg_dupmall.nix rust.commonArgs; pg-migration = pkgs.callPackage ./package/postgres/pg-migration/default.nix rust.commonArgs; c-hectic = pkgs.callPackage ./package/c/hectic/default.nix {}; watch = pkgs.callPackage ./package/c/watch/default.nix {}; diff --git a/package/c/hectic/docs/templater.md b/package/c/hectic/docs/templater.md index dc4adc0..af287d3 100755 --- a/package/c/hectic/docs/templater.md +++ b/package/c/hectic/docs/templater.md @@ -34,6 +34,8 @@ Parameters defining syntax for blocks controlling loops or nested structures. Finalizes the section declaration block. *Example:* `do ` | `:` +*Example* + *Section Example:* ```tpl {% for item in items do @@ -140,4 +142,4 @@ Enables calling functions with arguments. - **Unclosed Tags:** Must return an error. - **Missing Fields/Functions/Templates:** Configurable to either return an error or warning. - **Circular Includes:** Detect when possible. -- **No Shadowing:** Variables defined in section tags must not conflict with context variable names, otherwise, return an error. \ No newline at end of file +- **No Shadowing:** Variables defined in section tags must not conflict with context variable names, otherwise, return an error. diff --git a/package/postgres/wpg_dupmall.nix b/package/postgres/wpg_dupmall.nix new file mode 100644 index 0000000..40fdeb2 --- /dev/null +++ b/package/postgres/wpg_dupmall.nix @@ -0,0 +1,33 @@ +# Wrapper for pg_dumpall with url option +{ writeShellScriptBin, postgresql, ... }: +writeShellScriptBin "wpg_dupmall" /* */ '' +#!/bin/sh + +while [ $# -gt 0 ]; do + case "$1" in + --url=*) + url="''${1#--url=}" + shift + ;; + --url) + url="$2" + shift 2 + ;; + *) + args="$args $1" + shift + ;; + esac +done + +if [ -n "$url" ]; then + user=$(echo "$url" | sed -E 's|.*://([^:]+):.*@.*|\1|') + pass=$(echo "$url" | sed -E 's|.*://[^:]+:([^@]+)@.*|\1|') + host=$(echo "$url" | sed -E 's|.*@([^:/]+):.*|\1|') + port=$(echo "$url" | sed -E 's|.*:([0-9]+)/?.*|\1|') + export PGPASSWORD="$pass" + exec ${postgresql}/bin/pg_dumpall -h "$host" -p "$port" -U "$user" $args +else + exec ${postgresql}/bin/pg_dumpall $args +fi +''