// Generate Inventory of current Project

/*
*/

pragma runLim,0 

Buffer outBuf = create
outBuf = ""


/******************************************************************************
	scanModule
******************************************************************************/
void scanModule(Item itm)
{
	Module thisModule = null
	bool opened = false
	
	string mName = fullName(itm)
	
	if (!open(module mName))
	{
		thisModule = read(mName, false)
		opened = true
	}
	
	outBuf += mName ","
	outBuf += thisModule."Created On" ","
	outBuf += thisModule."Created By" ","
	outBuf += version(thisModule) ","
	outBuf += thisModule."Description" ","
	outBuf += uniqueID(itm) "\n"
	
	if (opened)
	{
		close(thisModule)
	}
}


/******************************************************************************
	scanFolder
******************************************************************************/
void scanFolder(Folder f) 
{
	Item itm
   
	for itm in f do 
	{
		if (null itm) continue
		if (isDeleted(itm)) continue
	   
		if ((type (itm) == "Project") ||(type (itm) == "Folder"))
		{
			scanFolder(folder(itm))	   
		}
		else if (type (itm) == "Formal") 
		{
			scanModule(itm)
		}
	}
}


/******************************************************************************
	MAIN
******************************************************************************/
string currFolder = fullName current Folder

if (confirm("Generate inventory for " currFolder "?"))
{
	scanFolder(folder currFolder)

	string fName = "c:/temp/inventory.csv"
	Stream outfile = write(fName)
	
	outfile << "Module Name,Created On,Created By,Version,Description,Unique Id\n"
	outfile << outBuf
	close(outfile)
	delete(outBuf)
	// notify the user that the script is complete
	ack "Inventory Complete."
}




sitemap