[90075] trunk/base/src/macports1.0/macports.tcl

cal at macports.org cal at macports.org
Mon Feb 20 17:52:11 PST 2012


Revision: 90075
          http://trac.macports.org/changeset/90075
Author:   cal at macports.org
Date:     2012-02-20 17:52:09 -0800 (Mon, 20 Feb 2012)
Log Message:
-----------
Only copy com.apple.dt.Xcode.plist to temporary user directory if newer

This prevents permission errors occuring when using bash-completion and
port(1) without sudo in environments where the macports user doesn't
have permission to read the file and/or can't write to the temporary
home.

Modified Paths:
--------------
    trunk/base/src/macports1.0/macports.tcl

Modified: trunk/base/src/macports1.0/macports.tcl
===================================================================
--- trunk/base/src/macports1.0/macports.tcl	2012-02-21 01:33:44 UTC (rev 90074)
+++ trunk/base/src/macports1.0/macports.tcl	2012-02-21 01:52:09 UTC (rev 90075)
@@ -1184,14 +1184,24 @@
     set user_plist "${user_home}/Library/Preferences/com.apple.dt.Xcode.plist"
     set target_dir "${target_homedir}/Library/Preferences"
     if {[file isfile $user_plist]} {
-        if {[catch {
-                file mkdir "${target_homedir}/Library/Preferences"
+        if {![file isdirectory "${target_dir}"]} {
+            ui_debug "Creating Library/Preferences in temporary home: ${target_dir}"
+            if {[catch {file mkdir "${target_dir}"} result]} {
+                ui_warn "Failed to create Library/Preferences in temporary home directory: $result"
+            }
+        }
+        if {![file isfile "${target_dir}/com.apple.dt.Xcode.plist"] || [file mtime "${user_plist}"] >
+            [file mtime "${target_dir}/com.apple.dt.Xcode.plist"]} {
+            ui_debug "Copying $user_plist to temporary home directory ${target_dir}"
+            if {[catch {
                 file copy -force $user_plist $target_dir
                 if {[getuid] == 0} {
+                    ui_debug "Attempding to chown() com.apple.dt.Xcode.plist in temporary home"
                     file attributes "${target_dir}/com.apple.dt.Xcode.plist" -owner $macportsuser
                 }
-        } result]} {
-            ui_warn "Failed to copy com.apple.dt.Xcode.plist to temporary home directory: $result"
+            } result]} {
+                ui_warn "Failed to copy com.apple.dt.Xcode.plist to temporary home directory: $result"
+            }
         }
     }
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120220/8d279710/attachment.html>


More information about the macports-changes mailing list