`` Remove BLank
`` www.scriptol.com
`` Licence: Public Domain

`` Remove blank line from a web page

include "path.sol"
include "dirlist.sol"



// purge a page

void purge(text fname)
    
    array webpage
    //print "Processing", fname    
    webpage.load(fname)
    
    file f  = fopen(fname, "wb")
    
    scan webpage
        text t = webpage[]
        if t.trim() = "" continue
        f.write(t)
    /scan

    f.close()
    
    print fname, "purged..."
    
return


void usage()
        print "Remove Blank Lines - www.scriptol.com"
        print "Usage: remblank filename"
        print "       remblank -d dirname"
        print "Option:"
        print "   -d purge all web pages in a directory."
        exit(0)
return        

array extensions = { "htm", "html", "php", "asp", "php5" }


int main(int argc, array argv)

    boolean FULLDIR = false
    text thedir, node, ext

    if argc not in  2 .. 3  let usage()

    text fname = argv[1]
    if fname[ .. 1] = "-d"    
        FULLDIR = true
        if argc = 3
            thedir = argv[2]
        else
            thedir = "."
        /if    
    /if    
    
    if FULLDIR = true
        DirList dl = DirList()
        array listdir = dl.getList(thedir)
        listdir.display()
        for text f in listdir
            node, ext = Path.splitExt(f)
            if thedir <> "." let f = Path.merge(thedir, f)
            if ext in extensions let     purge(f)
        /for        
    else
        purge(fname)
    /if    
    
return 0

main($argc, $argv)