34 lines
745 B
Nix
34 lines
745 B
Nix
# Wrapper for pg_dump 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_dump -h "$host" -p "$port" -U "$user" $args
|
|
else
|
|
exec ${postgresql}/bin/pg_dump $args
|
|
fi
|
|
''
|