utils: Move switch-symlinks to (guix build utils).
* guix/utils.scm (switch-symlinks): Move to ... * guix/build/utils.scm (switch-symlinks): ... here. * guix/profiles.scm, guix/scripts/home.scm, guix/scripts/package.scm: Import switch-symlinks from (guix build utils). * guix/scripts/system/reconfigure.scm (switch-system-program): Import (guix build utils) in G-expression.master
parent
22aeda1bcc
commit
2c05a6112b
|
@ -60,6 +60,7 @@
|
|||
directory-exists?
|
||||
executable-file?
|
||||
symbolic-link?
|
||||
switch-symlinks
|
||||
call-with-temporary-output-file
|
||||
call-with-ascii-input-file
|
||||
file-header-match
|
||||
|
@ -240,6 +241,13 @@ introduce the version part."
|
|||
"Return #t if FILE is a symbolic link (aka. \"symlink\".)"
|
||||
(eq? (stat:type (lstat file)) 'symlink))
|
||||
|
||||
(define (switch-symlinks link target)
|
||||
"Atomically switch LINK, a symbolic link, to point to TARGET. Works
|
||||
both when LINK already exists and when it does not."
|
||||
(let ((pivot (string-append link ".new")))
|
||||
(symlink target pivot)
|
||||
(rename-file pivot link)))
|
||||
|
||||
(define (call-with-temporary-output-file proc)
|
||||
"Call PROC with a name of a temporary file and open output port to that
|
||||
file; close the file and delete it when leaving the dynamic extent of this
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -32,7 +33,7 @@
|
|||
#:use-module ((guix config) #:select (%state-directory))
|
||||
#:use-module ((guix utils) #:hide (package-name->name+version))
|
||||
#:use-module ((guix build utils)
|
||||
#:select (package-name->name+version mkdir-p))
|
||||
#:select (package-name->name+version mkdir-p switch-symlinks))
|
||||
#:use-module ((guix diagnostics) #:select (&fix-hint formatted-message))
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (guix records)
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -63,7 +64,7 @@
|
|||
#:autoload (guix scripts home edit) (guix-home-edit)
|
||||
#:autoload (guix scripts home import) (import-manifest)
|
||||
#:use-module ((guix status) #:select (with-status-verbosity))
|
||||
#:use-module ((guix build utils) #:select (mkdir-p))
|
||||
#:use-module ((guix build utils) #:select (mkdir-p switch-symlinks))
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
;;; Copyright © 2018 Steve Sprang <scs@stevesprang.com>
|
||||
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
|
||||
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -49,7 +50,7 @@
|
|||
#:autoload (guix channels) (channel-name channel-commit channel->code)
|
||||
#:autoload (guix store roots) (gc-roots user-owned?)
|
||||
#:use-module ((guix build utils)
|
||||
#:select (directory-exists? mkdir-p))
|
||||
#:select (directory-exists? mkdir-p switch-symlinks))
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (ice-9 match)
|
||||
#:autoload (ice-9 pretty-print) (pretty-print)
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
|
||||
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -94,7 +95,8 @@ atomically, and run OS's activation script."
|
|||
#:select? not-config?)
|
||||
((guix config) => ,(make-config.scm)))
|
||||
#~(begin
|
||||
(use-modules (guix config)
|
||||
(use-modules (guix build utils)
|
||||
(guix config)
|
||||
(guix profiles)
|
||||
(guix utils))
|
||||
|
||||
|
|
|
@ -121,7 +121,6 @@
|
|||
file-sans-extension
|
||||
tarball-sans-extension
|
||||
compressed-file?
|
||||
switch-symlinks
|
||||
call-with-temporary-directory
|
||||
with-atomic-file-output
|
||||
|
||||
|
@ -895,13 +894,6 @@ VERSIONS. For example:
|
|||
(->bool (member (file-extension file)
|
||||
'("gz" "bz2" "xz" "lz" "lzma" "tgz" "tbz2" "zip"))))
|
||||
|
||||
(define (switch-symlinks link target)
|
||||
"Atomically switch LINK, a symbolic link, to point to TARGET. Works
|
||||
both when LINK already exists and when it does not."
|
||||
(let ((pivot (string-append link ".new")))
|
||||
(symlink target pivot)
|
||||
(rename-file pivot link)))
|
||||
|
||||
(define* (string-replace-substring str substr replacement
|
||||
#:optional
|
||||
(start 0)
|
||||
|
|
Reference in New Issue