home: direnv: add 'postgres' library file
This commit is contained in:
parent
7010ba25f4
commit
19aabcf6f5
|
@ -7,11 +7,26 @@ in
|
||||||
enable = mkDisableOption "direnv configuration";
|
enable = mkDisableOption "direnv configuration";
|
||||||
};
|
};
|
||||||
|
|
||||||
config.programs.direnv = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
enable = true;
|
programs.direnv = {
|
||||||
nix-direnv = {
|
|
||||||
# A better `use_nix`
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
nix-direnv = {
|
||||||
|
# A better `use_nix`
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.configFile =
|
||||||
|
let
|
||||||
|
libDir = ./lib;
|
||||||
|
contents = builtins.readDir libDir;
|
||||||
|
names = lib.attrNames contents;
|
||||||
|
files = lib.filter (name: contents.${name} == "regular") names;
|
||||||
|
linkLibFile = name:
|
||||||
|
lib.nameValuePair
|
||||||
|
"direnv/lib/${name}"
|
||||||
|
{ source = libDir + "/${name}"; };
|
||||||
|
in
|
||||||
|
lib.my.genAttrs' files linkLibFile;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
22
home/direnv/lib/postgres.sh
Normal file
22
home/direnv/lib/postgres.sh
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#shellcheck shell=bash
|
||||||
|
|
||||||
|
layout_postgres() {
|
||||||
|
if ! has postgres || ! has initdb; then
|
||||||
|
# shellcheck disable=2016
|
||||||
|
log_error 'layout_postgres: `postgres` and `initdb` are not in PATH'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck disable=2155
|
||||||
|
export PGDATA="$(direnv_layout_dir)/postgres"
|
||||||
|
export PGHOST="$PGDATA"
|
||||||
|
|
||||||
|
if [[ ! -d "$PGDATA" ]]; then
|
||||||
|
initdb
|
||||||
|
cat >> "$PGDATA/postgresql.conf" << EOF
|
||||||
|
listen_addresses = ''
|
||||||
|
unix_socket_directories = '$PGHOST'
|
||||||
|
EOF
|
||||||
|
echo "CREATE DATABASE $USER;" | postgres --single -E postgres
|
||||||
|
fi
|
||||||
|
}
|
Loading…
Reference in a new issue