cpt

[ARCHIVED] Carbs Packaging Tools
git clone git://git.ckyln.com/~cem/cpt.git
Log | Files | Refs | README | LICENSE

commit 5857dbe9efdba23453e40cd5cf654f4854d93b88
parent d4d5a5f001bf9a3b468ea87003c87d0c1bfaf11d
Author: Dylan Araps <dylan.araps@gmail.com>
Date:   Thu, 30 Jan 2020 17:24:57 +0200

kiss: Don't pull as git if unneeded

Diffstat:
Mkiss | 21+++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/kiss b/kiss @@ -54,9 +54,9 @@ as_root() { log "Using '${su:-su}'" case $su in - *sudo) sudo -E -- "$@" ;; - *doas) doas -- "$@" ;; - *) su -pc "$* <&3" 3<&0 </dev/tty ;; + *sudo) sudo -Eu "${user:-root}" -- "$@" ;; + *doas) doas -u "${user:-root}" -- "$@" ;; + *) su -pc "$* <&3" "${user:-root}" 3<&0 </dev/tty ;; esac } @@ -1025,7 +1025,20 @@ pkg_updates() { else log "$PWD" "Need root to update" - as_root git pull + # Find out the owner of the repository and spawn + # git as this user below. + # + # This prevents 'git' from changing the original + # ownership of files and directories in the rare + # case that the repository is owned by a 3rd user. + ( + user=$(stat -c %U "$PWD") + + [ "$user" = root ] || + log "Dropping permissions to $user for pull" + + as_root git pull + ) fi } done