#!/usr/bin/perl
#
# This file is ungoverned by the CypherpunksAntiLicense. # Do with it as you will. # Create a list of orphan WikiName's in an EmacsWiki directory. # Put list in wiki page named OrphanWikiNames. my($wikidir)="$ENV{'HOME'}/Wiki"; opendir(DIR, $wikidir); my(@wikifiles)=readdir(DIR); my(@wikinames)=(); foreach (@wikifiles) { if ($_ !~ /(^\.)|(\~$)/) # Exclude hidden files and emacs backup files. { open(FILE,"<$wikidir/$_"); my(@contents)=<FILE>; $content=join('',@contents); # Create one string representing an entire file. while ($content =~ /[A-Z][a-z]+([A-Z][a-z]+)+/) # Scan file content for first WikiName. { push @wikinames, $&; $content=$'; } } } # Print set difference wikinames 'minus' wikifiles. @wikinames=sort @wikinames; @wikifiles=sort @wikifiles; open(OUTFILE,">$wikidir/OrphanWikiNames"); while (@wikinames != ()) { shift @wikinames while ($wikinames[0] eq $wikinames[1]); print OUTFILE "$wikinames[0]\n" if (@wikifiles==()); shift @wikifiles while (@wikifiles != () && $wikinames[0] gt $wikifiles[0]); print OUTFILE "$wikinames[0]\n" if (@wikifiles == () || $wikinames[0] lt $wikifiles[0]); shift @wikinames; } #