Posted to tcl by patthoyts at Thu Jul 27 09:37:22 GMT 2006view raw
- # From tkabber - plugins/iq/version.tcl
- proc try_linux_version {distr file flag} {
- global linux_distribution
- if {![file exists $file]} {
- return
- }
- if {![file readable $file]} {
- set linux_distribution $distr
- return
- }
- set fd [open $file r]
- set content [read $fd]
- close $fd
- set last [string first "\n" $content]
- if {$last < 0} {
- set last end
- } else {
- set last [expr {$last - 1}]
- }
- set line [string range $content 0 $last]
- switch -- $flag {
- file { set linux_distribution $line }
- append { set linux_distribution "$distr $line" }
- }
- }
- proc guess_linux_distribution {} {
- global linux_distribution
- if {[info exists linux_distribution]} {
- return $linux_distribution
- }
- foreach {distr file flag} { \
- "SuSE Linux" /etc/SuSE-release file \
- "Debian GNU/Linux" /etc/debian_version append \
- "ASPLinux" /etc/asplinux-release file \
- "Alt Linux" /etc/altlinux-release file \
- "PLD Linux" /etc/pld-release file \
- "Gentoo Linux" /etc/gentoo-release file \
- "Mandrake Linux" /etc/mandrake-release file \
- "RedHat Linux" /etc/redhat-release file \
- "Conectiva Linux" /etc/conectiva-release file \
- "Slackware Linux" /etc/slackware-version append } {
- try_linux_version $distr $file $flag
- if {[info exists linux_distribution]} {
- return $linux_distribution
- }
- }
- set linux_distribution Linux
- return $linux_distribution
- }