[69192] contrib

ryandesign at macports.org ryandesign at macports.org
Mon Jun 28 01:41:38 PDT 2010


Revision: 69192
          http://trac.macports.org/changeset/69192
Author:   ryandesign at macports.org
Date:     2010-06-28 01:41:33 -0700 (Mon, 28 Jun 2010)
Log Message:
-----------
port-depgraph: create by copying port-rdeps and removing the ASCII output parts

Added Paths:
-----------
    contrib/port-depgraph/
    contrib/port-depgraph/port-depgraph

Removed Paths:
-------------
    contrib/port-depgraph/port-rdeps

Copied: contrib/port-depgraph/port-depgraph (from rev 69191, contrib/port-rdeps/port-rdeps)
===================================================================
--- contrib/port-depgraph/port-depgraph	                        (rev 0)
+++ contrib/port-depgraph/port-depgraph	2010-06-28 08:41:33 UTC (rev 69192)
@@ -0,0 +1,178 @@
+#!/usr/bin/tclsh
+#
+# Run a recursive dependency listing against a given port, outputing
+# a Graphviz graph description. To create a graphical representation
+# of that graph, run for example:
+# $ port-depgraph apache2 | dot -Tpng -o apache2.png
+
+
+set MY_VERSION 0.1
+
+
+array set portsSeen {}
+
+
+proc printUsage {} {
+   puts "Usage: $::argv0 \[-dhrvV\] \[-t macports-tcl-path\] port-name \[variants...\]"
+   puts "   -h   This help"
+   puts "   -t   Give a different location for the base MacPorts Tcl"
+   puts "        file (defaults to /Library/Tcl)"
+   puts "   -v   verbose output, includes dependency labels"
+   puts "   -V   show version and MacPorts version being used"
+   puts ""
+   puts "port-name is the name of a port to show dependencies"
+   puts "variants is the list of variants to enable/disable: +one -two..."
+   puts ""
+   puts "Dependency types are represented as follows:"
+   puts "   depends_run   is dashed"
+   puts "   depends_build is dotted"
+   puts "   depends_lib   is solid"
+}
+
+
+proc dependenciesForPort {portName variantInfo} {
+   set dependencyList [list]
+   set portSearchResult [mportlookup $portName]
+   if {[llength $portSearchResult] < 1} {
+      puts "Warning: port \"$portName\" not found"
+      return [list]
+   }
+   array set portInfo [lindex $portSearchResult 1]
+   set mport [mportopen $portInfo(porturl) {} $variantInfo]
+   array unset portInfo
+   array set portInfo [mportinfo $mport]
+   mportclose $mport
+   array set dependencyDictionary {depends_build build depends_lib lib depends_run run}
+   foreach dependencyType [array names dependencyDictionary] {
+      if {[info exists portInfo($dependencyType)] && [string length $portInfo($dependencyType)] > 0} {
+         foreach dependency $portInfo($dependencyType) {
+            set afterColon [expr {[string last ":" $dependency] + 1}]
+            lappend dependencyList [list $dependencyDictionary($dependencyType) [string range $dependency 0 [expr [string first ":" $dependency] - 1]] [string range $dependency $afterColon end]]
+         }
+      }
+   }
+
+   return $dependencyList
+}
+
+
+proc print_dependencies {dependencyArray portName verbose} {
+   upvar $dependencyArray portDependencies
+   global portsSeen
+   if {[info exists portsSeen($portName)]} {
+      return
+   }
+   set portsSeen($portName) 1
+   foreach aList $portDependencies($portName) {
+      set aType [lindex $aList 0]
+      set aBy   [lindex $aList 1]
+      set aPort [lindex $aList 2]
+
+      set style "solid"
+      if {$aType == "run"} {
+         set style "dashed"
+      } elseif {$aType == "build"} {
+         set style "dotted"
+      }
+
+      set color "black"
+      if {$aBy != "port"} {
+         set color "#708090"
+      }
+
+      if {!$verbose} {
+         puts [format {"%s" -> "%s" [ style=%s ] } $portName $aPort $style]
+      } else {
+         puts [format {"%s" -> "%s" [ label="%s",style="%s",color="%s" ]} $portName $aPort $aBy $style $color]
+      }
+
+      print_dependencies portDependencies $aPort $verbose
+   }
+}
+
+
+proc find_all_dependencies {portName variantInfo verbose} {
+   array set portDependencies {}
+   set portList [list $portName]
+   while {[llength $portList] > 0} {
+      set aPort [lindex $portList 0]
+      set portDependencies($aPort) [dependenciesForPort $aPort $variantInfo]
+      set portList [lreplace $portList 0 0]
+      foreach possiblyNewPort $portDependencies($aPort) {
+         if {![info exists portDependencies([lindex $possiblyNewPort 2])]} {
+            lappend portList [lindex $possiblyNewPort 2]
+         }
+      }
+   }
+
+   puts "strict digraph \"$portName\" \{"
+
+   print_dependencies portDependencies $portName $verbose
+
+   puts "\}"
+}
+
+
+# Begin
+
+set macportsTclPath /Library/Tcl
+set verbose 0
+set showVersion 0
+
+while {[string index [lindex $::argv 0] 0] == "-" } {
+   switch [string range [lindex $::argv 0] 1 end] {
+      h {
+         printUsage
+         exit 0
+      }
+      t {
+         if {[llength $::argv] < 2} {
+            puts "-t needs a path"
+            printUsage
+            exit 1
+         }
+         set macportsTclPath [lindex $::argv 1]
+         set ::argv [lrange $::argv 1 end]
+      }
+      v {
+          set verbose 1
+      }
+      V {
+         set showVersion 1
+      }
+      default {
+         puts "Unknown option [lindex $::argv 0]"
+         printUsage
+         exit 1
+      }
+   }
+   set ::argv [lrange $::argv 1 end]
+}
+
+source ${macportsTclPath}/macports1.0/macports_fastload.tcl
+package require macports
+mportinit
+
+if {$showVersion} {
+   puts "Version $MY_VERSION"
+   puts "MacPorts version [macports::version]"
+   exit 0
+}
+
+if {[llength $::argv] == 0} {
+   puts "Error: missing port-name"
+   printUsage
+   exit 1
+}
+set portName [lindex $::argv 0]
+set ::argv [lrange $::argv 1 end]
+
+array set variantInfo {}
+foreach variantSetting $::argv {
+   set flag [string index $variantSetting 0]
+   set variantName [string range $variantSetting 1 end]
+   set variantInfo($variantName) $flag
+}
+
+find_all_dependencies $portName [array get variantInfo] $verbose
+

Deleted: contrib/port-depgraph/port-rdeps
===================================================================
--- contrib/port-rdeps/port-rdeps	2010-06-28 06:54:45 UTC (rev 69191)
+++ contrib/port-depgraph/port-rdeps	2010-06-28 08:41:33 UTC (rev 69192)
@@ -1,212 +0,0 @@
-#!/usr/bin/tclsh
-#
-# Run a recursive dependency listing against a given port, outputing
-# either a basic text display of the result, or dot language so a graph
-# can be created.
-# The dot functionality can be used by doing:
-# $ port-rdeps -d apache2 | dot -Tpng -o apache2.png
-#
-# Todo:
-# Does not differentiate, in output, between bin/lib/run type dependencies
-# Once "good enough", integrate into port
-#
-# http://trac.macports.org/ticket/11892
-
-
-set MY_VERSION 1.0
-
-
-array set portsSeen {}
-
-
-proc printUsage {} {
-   puts "Usage: $::argv0 \[-dhrvV\] \[-t macports-tcl-path\] port-name \[variants...\]"
-   puts "   -d   Output dot-format instead of plain ASCII"
-   puts "   -h   This help"
-   puts "   -r   Reduce ASCII output, showing a given port only once"
-   puts "   -t   Give a different location for the base MacPorts Tcl"
-   puts "        file (defaults to /Library/Tcl)"
-   puts "   -v   verbose output, includes dependency labels"
-   puts "   -V   show version and MacPorts version being used"
-   puts ""
-   puts "port-name is the name of a port to show dependencies"
-   puts "variants is the list of variants to enable/disable: +one -two..."
-   puts ""
-   puts "For dot output, dependency types are represented as follows:"
-   puts "   depends_run   is dashed"
-   puts "   depends_build is dotted"
-   puts "   depends_lib   is solid"
-}
-
-
-proc dependenciesForPort {portName variantInfo} {
-   set dependencyList [list]
-   set portSearchResult [mportlookup $portName]
-   if {[llength $portSearchResult] < 1} {
-      puts "Warning: port \"$portName\" not found"
-      return [list]
-   }
-   array set portInfo [lindex $portSearchResult 1]
-   set mport [mportopen $portInfo(porturl) {} $variantInfo]
-   array unset portInfo
-   array set portInfo [mportinfo $mport]
-   mportclose $mport
-   array set dependencyDictionary {depends_build build depends_lib lib depends_run run}
-   foreach dependencyType [array names dependencyDictionary] {
-      if {[info exists portInfo($dependencyType)] && [string length $portInfo($dependencyType)] > 0} {
-         foreach dependency $portInfo($dependencyType) {
-            set afterColon [expr {[string last ":" $dependency] + 1}]
-            lappend dependencyList [list $dependencyDictionary($dependencyType) [string range $dependency 0 [expr [string first ":" $dependency] - 1]] [string range $dependency $afterColon end]]
-         }
-      }
-   }
-
-   return $dependencyList
-}
-
-
-proc print_dependencies {dependencyArray portName outputAscii reduceAscii verbose} {
-   upvar $dependencyArray portDependencies
-   global portsSeen
-   if {$outputAscii} {
-      set spaces [string repeat " " [expr {$outputAscii * 2}]]
-      set outputAscii [expr {$outputAscii + 1}]
-   } elseif {[info exists portsSeen($portName)]} {
-      return
-   }
-   set portsSeen($portName) 1
-   foreach aList $portDependencies($portName) {
-      set aType [lindex $aList 0]
-      set aBy   [lindex $aList 1]
-      set aPort [lindex $aList 2]
-
-      if {$outputAscii && $reduceAscii && [info exists portsSeen($aPort)]} {
-         continue
-      }
-
-      set style "solid"
-      if {$aType == "run"} {
-         set style "dashed"
-      } elseif {$aType == "build"} {
-         set style "dotted"
-      }
-
-      set color "black"
-      if {$aBy != "port"} {
-         set color "#708090"
-      }
-
-      if {$outputAscii && !$verbose} {
-         puts "${spaces}${aPort}"
-      } elseif {$outputAscii && $verbose} {
-         puts "${spaces}${aPort} (depends_${aType}, ${aBy})"
-      } elseif {!$outputAscii && !$verbose} {
-         puts [format {"%s" -> "%s" [ style=%s ] } $portName $aPort $style]
-      } elseif {!$outputAscii && $verbose} {
-         puts [format {"%s" -> "%s" [ label="%s",style="%s",color="%s" ]} $portName $aPort $aBy $style $color]
-      }
-
-      print_dependencies portDependencies $aPort $outputAscii $reduceAscii $verbose
-   }
-}
-
-
-proc find_all_dependencies {portName variantInfo outputAscii reduceAscii verbose} {
-   array set portDependencies {}
-   set portList [list $portName]
-   while {[llength $portList] > 0} {
-      set aPort [lindex $portList 0]
-      set portDependencies($aPort) [dependenciesForPort $aPort $variantInfo]
-      set portList [lreplace $portList 0 0]
-      foreach possiblyNewPort $portDependencies($aPort) {
-         if {![info exists portDependencies([lindex $possiblyNewPort 2])]} {
-            lappend portList [lindex $possiblyNewPort 2]
-         }
-      }
-   }
-
-   if {$outputAscii} {
-      puts "Dependencies of $portName:"
-   } else {
-      puts "strict digraph \"$portName\" \{"
-   }
-
-   print_dependencies portDependencies $portName $outputAscii $reduceAscii $verbose
-
-   if {!$outputAscii} {
-      puts "\}"
-   }
-}
-
-
-# Begin
-
-set asciiOutput 1
-set reduceAsciiOutput 0
-set macportsTclPath /Library/Tcl
-set verbose 0
-set showVersion 0
-
-while {[string index [lindex $::argv 0] 0] == "-" } {
-   switch [string range [lindex $::argv 0] 1 end] {
-      d {
-         set asciiOutput 0
-      }
-      h {
-         printUsage
-         exit 0
-      }
-      r {
-         set reduceAsciiOutput 1
-      }
-      t {
-         if {[llength $::argv] < 2} {
-            puts "-t needs a path"
-            printUsage
-            exit 1
-         }
-         set macportsTclPath [lindex $::argv 1]
-         set ::argv [lrange $::argv 1 end]
-      }
-      v {
-          set verbose 1
-      }
-      V {
-         set showVersion 1
-      }
-      default {
-         puts "Unknown option [lindex $::argv 0]"
-         printUsage
-         exit 1
-      }
-   }
-   set ::argv [lrange $::argv 1 end]
-}
-
-source ${macportsTclPath}/macports1.0/macports_fastload.tcl
-package require macports
-mportinit
-
-if {$showVersion} {
-   puts "Version $MY_VERSION"
-   puts "MacPorts version [macports::version]"
-   exit 0
-}
-
-if {[llength $::argv] == 0} {
-   puts "Error: missing port-name"
-   printUsage
-   exit 1
-}
-set portName [lindex $::argv 0]
-set ::argv [lrange $::argv 1 end]
-
-array set variantInfo {}
-foreach variantSetting $::argv {
-   set flag [string index $variantSetting 0]
-   set variantName [string range $variantSetting 1 end]
-   set variantInfo($variantName) $flag
-}
-
-find_all_dependencies $portName [array get variantInfo] $asciiOutput $reduceAsciiOutput $verbose
-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100628/f90c8bce/attachment.html>


More information about the macports-changes mailing list