r3517 - trunk/scripts

Andres Salomon dilinger at costa.debian.org
Sat Jul 16 01:40:28 UTC 2005


Author: dilinger
Date: 2005-07-16 01:40:27 +0000 (Sat, 16 Jul 2005)
New Revision: 3517

Modified:
   trunk/scripts/split-config
Log:
oh god, that is sexy.  it works!


Modified: trunk/scripts/split-config
===================================================================
--- trunk/scripts/split-config	2005-07-16 00:29:54 UTC (rev 3516)
+++ trunk/scripts/split-config	2005-07-16 01:40:27 UTC (rev 3517)
@@ -96,6 +96,7 @@
 	}
 end
 
+$archdirs = nil
 def archdirs
 	if $archdirs.nil?
 		base = OPTIONS['dir']
@@ -110,38 +111,39 @@
 	$archdirs
 end
 
-def subarchdirs
-	if $subarchdirs.nil?
-		$subarchdir = []
-		archdirs().each { |d|
-			sa = Dir.open(d) { |e|
-				e.find_all { |f|
-					File.directory?("#{d}/#{f}") && f !~ /^\./
-				}
+def subarchdirs(archdir = nil)
+	subarchdirs = []
+	archdir = archdirs() if archdir.nil?
+	archdir.each { |d|
+		sa = Dir.open(d) { |e|
+			e.find_all { |f|
+				File.directory?("#{d}/#{f}") && f !~ /^\./
 			}
-			sa.collect! { |x| "#{d}/#{x}" }
-			$subarchdirs.concat(sa)
 		}
-	end
-	$subarchdirs
+		sa.collect! { |x| "#{d}/#{x}" }
+		subarchdirs.concat(sa)
+	}
+	subarchdirs
 end
 
-def flavourfiles
-	if $flavourfiles.nil?
-		$flavourfiles = []
+def flavourfiles(archdir = nil)
+	flavourfiles = []
+	if archdir.nil?
 		dirs = archdirs().clone.delete_if { |d|
-			b.find { |e|
+			d.find { |e|
 				# if the subarchdir contains the archdir, nuke
 				# the archdir from the list.
 				e.slice(d + '/')
 			}
 		}
 		dirs.concat(subarchdirs())
-		dirs.each { |d|
-			$flavourfiles.concat(Dir.glob("#{d}/config.*"))
-		}
+	else
+		dirs = archdir
 	end
-	$flavourfiles
+	dirs.each { |d|
+		flavourfiles.concat(Dir.glob("#{d}/config.*"))
+	}
+	flavourfiles
 end
 
 def affected_files(answer)
@@ -154,12 +156,16 @@
 			files.concat(subarchdirs().collect { |x| "#{x}/config" })
 			files.concat(flavourfiles())
 		when 'a'
-			files << "#{base}/#{OPTIONS['arch']}/config"
-			files.concat(subarchdirs().collect { |x| "#{x}/config" })
-			files.concat(flavourfiles())
+			base += '/' + OPTIONS['arch']
+			files << "#{base}/config"
+			subarches = subarchdirs([base]).collect { |x| "#{x}/config" }
+			files.concat(subarches)
+			files.concat(flavourfiles(subarches))
+			files.concat(flavourfiles([base]))
 		when 's'
-			files << "#{base}/#{OPTIONS['arch']}/#{OPTIONS['subarch']}/config"
-			files.concat(flavourfiles())
+			base += '/' + OPTIONS['arch'] + '/' + OPTIONS['subarch']
+			files << "#{base}/config"
+			files.concat(flavourfiles([base]))
 		when 'f'
 			if OPTIONS['subarch']
 				files << "#{base}/#{OPTIONS['arch']}/#{OPTIONS['subarch']}/config.#{OPTIONS['flavour']}"




More information about the Kernel-svn-changes mailing list