Version 2 of Is This File Mine?

Updated 2011-07-02 07:29:19 by hv

hv When running in a shared environment, I often need to determine if a file belongs to me or not. Here is how I do it, if you know a different way, please contribute.

package require Tclx

#
# Does this file belong to me?
#
proc fileIsMine {fileName} {
    if {![file exists $fileName]} { return 0 }
    
    file stat $fileName stat
    if {$stat(uid) == [id userid]} {
        return 1
    } else {
        return 0
    }
}

#
# Rough test
#
set allFiles [glob -nocomplain /tmp/*]
set myUid [id userid]

foreach f $allFiles {
    file stat $f filestat
    if {[fileIsMine $f]} {
        puts "mine     - $f"
    } else {
        puts "not mine - $f"
    }
}