#!/usr/local/bin/tclsh
# -*- tcl -*-
# check the manifest against the current contents of the directory

set manifest [lindex $argv 0]

rename file ori_file
proc   file {name} {
    global files
    set    files($name) 1
    if {! [ori_file exists $name]} {
	puts stdout "missing: $name"
    }
}

# read manifest and check existence of all listed files
source $manifest


# now backwards: find all files and check
# for files not listed in the manifest

set list [exec find . -print]
regsub -all "\n" $list { } list

foreach f $list {
    if {[catch {set files($f)}]} {
	puts stdout "new:     $f"
    }
}


syntax highlighted by Code2HTML, v. 0.9.1