Update spotify config handling
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
4
lib/runtime/default.nix
Normal file
4
lib/runtime/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
merge = pkgs.callPackage ./merge { };
|
||||
}
|
13
lib/runtime/merge/default.nix
Normal file
13
lib/runtime/merge/default.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
keyValue = lib.meta.getExe (
|
||||
pkgs.writeShellApplication {
|
||||
name = "merge-key-value";
|
||||
runtimeInputs = with pkgs; [
|
||||
gnugrep
|
||||
coreutils
|
||||
];
|
||||
text = builtins.readFile ./key-value.sh;
|
||||
}
|
||||
);
|
||||
}
|
19
lib/runtime/merge/key-value.sh
Normal file
19
lib/runtime/merge/key-value.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
SOURCE_FILE=$(realpath -m "$1")
|
||||
TARGET_FILE=$(realpath -m "$2")
|
||||
|
||||
mkdir -p "$(dirname "${TARGET_FILE}")"
|
||||
|
||||
TEMP_FILE=$(mktemp)
|
||||
cat "${SOURCE_FILE}" > "${TEMP_FILE}"
|
||||
|
||||
if [[ -f "${TARGET_FILE}" ]]; then
|
||||
while IFS='=' read -r key value; do
|
||||
if ! grep -q "^${key}=" "${TEMP_FILE}"; then
|
||||
echo "${key}=${value}" >> "${TEMP_FILE}"
|
||||
fi
|
||||
done < "${TARGET_FILE}"
|
||||
fi
|
||||
|
||||
mv "${TEMP_FILE}" "${TARGET_FILE}"
|
||||
|
||||
echo "Configuration file ${TARGET_FILE} has been updated."
|
Reference in New Issue
Block a user