services: network-manager: Handle existing configuration directory.

* gnu/services/networking.scm (network-manager-activation):
Handle the case where /etc/NetworkManager/conf.d already exists.

Change-Id: I7af4f4ad226eef28bd8667f0708525e77a6a50c8
Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
This commit is contained in:
45mg 2025-03-02 23:59:49 +05:30 committed by Vagrant Cascadian
parent 490b4e190a
commit a1e87abaa3
No known key found for this signature in database
GPG key ID: DC518FC87F9716AA

View file

@ -1432,7 +1432,18 @@ project's documentation} for more information."
'((mkdir-p "/var/lib/misc"))
'())
#$@(if (pair? extra-configuration-files) ;if non-empty
`((symlink
;; If /etc/NetworkManager/conf.d is a symlink to a store file,
;; delete it.
`((if (and (file-exists? "/etc/NetworkManager/conf.d")
(store-file-name?
(canonicalize-path "/etc/NetworkManager/conf.d")))
(delete-file-recursively
"/etc/NetworkManager/conf.d"))
;; If it exists but is not a symlink to a store file, then
;; this will fail with EEXIST; we leave this for the user to
;; handle, since they probably created the directory
;; themselves.
(symlink
,(file-union "network-manager-configuration-directory"
extra-configuration-files)
"/etc/NetworkManager/conf.d"))