diff options
Diffstat (limited to 'pkgs/applications/editors/vscode/extensions/updateSettings.nix')
-rw-r--r-- | pkgs/applications/editors/vscode/extensions/updateSettings.nix | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/pkgs/applications/editors/vscode/extensions/updateSettings.nix b/pkgs/applications/editors/vscode/extensions/updateSettings.nix index 443b409302796..fe23e099b536d 100644 --- a/pkgs/applications/editors/vscode/extensions/updateSettings.nix +++ b/pkgs/applications/editors/vscode/extensions/updateSettings.nix @@ -1,39 +1,43 @@ # Updates the vscode setting file base on a nix expression # should run from the workspace root. -{ writeShellScriptBin -, lib -, jq +{ + writeShellScriptBin, + lib, + jq, }: ##User Input -{ settings ? {} -# if marked as true will create an empty json file if does not exist -, createIfDoesNotExists ? true -, vscodeSettingsFile ? ".vscode/settings.json" -, userSettingsFolder ? "" -, symlinkFromUserSetting ? false +{ + settings ? { }, + # if marked as true will create an empty json file if does not exist + createIfDoesNotExists ? true, + vscodeSettingsFile ? ".vscode/settings.json", + userSettingsFolder ? "", + symlinkFromUserSetting ? false, }: let updateVSCodeSettingsCmd = '' - ( - echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...' - oldSettings=$(cat ${vscodeSettingsFile}) - echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile} - )''; + ( + echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...' + oldSettings=$(cat ${vscodeSettingsFile}) + echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile} + )''; createEmptySettingsCmd = ''mkdir -p .vscode && echo "{}" > ${vscodeSettingsFile}''; fileName = builtins.baseNameOf vscodeSettingsFile; - symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting - '' && mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" ''; + symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting ''&& mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" ''; in - writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}'' - (lib.optionalString (settings != {}) - (if createIfDoesNotExists then '' - [ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd} - ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd} - '' - else ''[ -f "${vscodeSettingsFile}" ] && ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd} - '' - ) +writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}'' ( + lib.optionalString (settings != { }) ( + if createIfDoesNotExists then + '' + [ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd} + ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd} + '' + else + '' + [ -f "${vscodeSettingsFile}" ] && ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd} + '' ) +) |