#!/usr/bin/perl


use Fcntl;

# Add All Files

sub add_dir {
    local($fn);
    local(@files);
    local($DIR);
    local($f);
    local($ufn);
    local($set);
    local($first);
    local($settemp);

    my $fn = @_[0];
    
    
    opendir DIR, $fn;
    
    $ufn = $fn;

    $ufn =~ s/_/__/g;
    $ufn =~ s/\//_/g;
    $ufn =~ s/\./_/g;
    
    @files = readdir DIR;

    $set = "";
    
    $first=1;
    foreach $f (@files) {

	if ((not($f eq ".")) and (not($f eq "..")))
	{
	    if (-d ($fn . $f)) {
		$settemp = &add_dir ($fn . $f . "/");
		if (!($settemp eq ""))
		{
		    if ($first==1)
		    {
			$first=0;
			$set .= $settemp;
		    } else {
			$set .= " , " . $settemp;
		    }
		}
	    } else {
		($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
		 $agime,$mtime,$ctime,$blksize,$blocks) = stat ($fn . $f);
		$f =~ s/_/__/g;
		$f =~ s/\./_/g;
		print "match " . $ufn . $f . " File(\"" . $ino . "\",\"". $dev . "\");\n";
		if ($first==1)
		{
		    $first=0;
		    $set .= $ufn . $f;
		} else {
		    $set .= " , " . $ufn . $f;
		}
		
	    }
	} 
    }

    if (!($set eq ""))
    {
	print "set " . $ufn . " { " . $set . " };\n";
    }

    closedir DIR;
    
    return $set;
}



if (@ARGV[0] eq "")
{
    &add_dir("/");
} else {
    $argv0 = @ARGV[0];
    $argv0 .= "/";
    $argv0 =~ s/\/\//\//g;
    &add_dir($argv0);
}
printf "\n\n";


# Add All Devices
