コード例 #1
0
ファイル: Feeder.cpp プロジェクト: HaikuArchives/Beacon
void
Feeder::AddEntry(entry_ref *ref)
{
	BEntry entry(ref) ;
	entry_ref *ref_ptr ;

	if(entry.InitCheck() == B_OK && entry.IsFile() && !is_hidden(ref)
		&& !Excluded(ref)) {
			ref_ptr = new entry_ref(*ref) ;
			fIndexQueue.AddItem((entry_ref*)ref_ptr) ;
	}
}
コード例 #2
0
 ///
 /// Creates a new project from an ElmerModuleDriver base
 ///
 /// This program is designed to make a new IllinoisRocstar
 /// software project starting from an intallation of the
 /// ElmerModuleDriver project template.
 ///
 /// Usage of this program should go like the following:
 /// 1. Get and Install the ElmerModuleDriver template.
 /// <blockquote>
 ///  svn co $IRREPO/ElmerModuleDriver/trunk ElmerModuleDriver\n
 ///  mkdir elmermoduledriver_build\n
 ///  cd elmermoduledriver_build\n
 ///  cmake ../ElmerModuleDriver\n
 ///  make\n
 ///  cd ../\n
 /// </blockquote>
 /// 2. Create the new project, <NewProject>,  with the "make_project" command.
 /// <blockquote>
 ///  elmermoduledriver_build/bin/make_project ElmerModuleDriver <NewProject>\n
 /// </blockquote>
 ///
 /// @note Be sure to replace <NewProject> with your new project name.
 ///
 /// The usage for the make_project command is: 
 /// <blockquote>
 ///       make_project usage:\n
 /// 
 ///       make_project \<template name\> \<new project\> [verb level]\n
 ///
 ///       This program will read the project template from the \<template name\>\n 
 ///       directory and create a new "blank" IllinoisRocstar project\n
 ///       named \<new name\>, in a directory named \<new name\>.\n
 ///       An optional verblevel of 1 or 2 can be given to make the process\n
 ///       more verbose.\n
 /// </blockquote>
 ///
 int MakeProject(int argc,char *argv[])
 {
   if(argc < 3){
     std::cout << "ElmerModuleDriver:MakeProject: " << std::endl << "Usage:" << std::endl << std::endl
               << argv[0] << " <template name> <new name> [verb level]" << std::endl
               << std::endl
               << "This program will read the project template from the <template name> "
               << std::endl
               << "directory and create a new \"blank\" IllinoisRocstar project"
               << std::endl
               << "named <new name>, in a directory named <new name>."
               << std::endl
               << "An optional verblevel of 1 or 2 can be given to make the process"
               << std::endl << "more verbose." << std::endl;
     return(0);
   }
   std::string OriginalName(argv[1]);
   std::string NewName(argv[2]);
   int verb = 0;
   if(argv[3]){
     verb = 1;
     int v = atoi(argv[3]);
     if(v > 0)
       verb = v;
   }
   std::vector<std::string> ProtectedFiles;
   ProtectedFiles.push_back("AUTHORS");
   ProtectedFiles.push_back("CTestConfig.cmake");
   ProtectedFiles.push_back("LICENSE");
   ProtectedFiles.push_back(".svn");
   std::vector<std::string> CommonFiles;
   CommonFiles.push_back("CMakeLists.txt");
   int syserr = 0;
   std::string olower(OriginalName);
   std::string oupper(OriginalName);
   std::string nlower(NewName);
   std::string nupper(NewName);
   std::transform(olower.begin(),olower.end(),olower.begin(),tolower);
   std::transform(oupper.begin(),oupper.end(),oupper.begin(),toupper);
   std::transform(nlower.begin(),nlower.end(),nlower.begin(),tolower);
   std::transform(nupper.begin(),nupper.end(),nupper.begin(),toupper);
 
   if(verb)
     std::cout << "ElmerModuleDriver:MakeProject:" << std::endl
               << " Creating a new project (" << NewName 
               << ") from project template (" << OriginalName
               << ")." << std::endl << std::endl
               << "Creating top level project directories...";
   std::string dirname(NewName);
   if(!IRAD::Sys::FILEEXISTS(NewName)){
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject:    Creating directory " << dirname << "...";
     syserr = IRAD::Sys::CreateDirectory(dirname);
     if(syserr){
       std::cout << "ElmerModuleDriver:MakeProject: Unable to create directory " << dirname << "."
                 << std::endl;
       return(1);
     }
     if(verb > 1)
       std::cout << "done." << std::endl;
   }
   dirname += "/branches";
   if(!IRAD::Sys::FILEEXISTS(dirname)){
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject:    Creating directory " << dirname << "...";
     syserr = IRAD::Sys::CreateDirectory(dirname);
     if(syserr){
       std::cout << "ElmerModuleDriver:MakeProject: Unable to create directory " << dirname << "."
                 << std::endl;
       return(1);
     }
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject: done." << std::endl;
   }
   dirname = NewName+"/tags";
   if(!IRAD::Sys::FILEEXISTS(dirname)){
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject:    Creating directory " << dirname << "...";
     syserr = IRAD::Sys::CreateDirectory(dirname);
     if(syserr){
       std::cout << "ElmerModuleDriver:MakeProject: Unable to create directory " << dirname << "."
                 << std::endl;
       return(1);
     }
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject: done." << std::endl;
   }
   dirname.assign(NewName+"/examples");
   if(!IRAD::Sys::FILEEXISTS(dirname)){
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject:    Creating directory " << dirname << "...";
     syserr = IRAD::Sys::CreateDirectory(dirname);
     if(syserr){
       std::cout << "ElmerModuleDriver:MakeProject: Unable to create directory " << dirname << "."
                 << std::endl;
       return(1);
     }
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject: done." << std::endl;
   }
   bool protect_svn = false;
   dirname = NewName+"/trunk";
   std::vector<std::string>::iterator pfi = ProtectedFiles.begin();
   while(pfi != ProtectedFiles.end()){
     std::string ProtectThisFile(dirname+"/"+*pfi++);
     std::string ProtectedFile(ProtectThisFile+".backup");
     if(IRAD::Sys::FILEEXISTS(ProtectThisFile))
       IRAD::Sys::Rename(ProtectThisFile,ProtectedFile);
   }
   pfi = CommonFiles.begin();
   while(pfi != CommonFiles.end()){
     std::string ProtectThisFile(dirname+"/"+*pfi++);
     std::string ProtectedFile(ProtectThisFile+".backup");
     if(IRAD::Sys::FILEEXISTS(ProtectThisFile))
       IRAD::Sys::Rename(ProtectThisFile,ProtectedFile);
   }
   std::ostringstream ComStr;
   if(!IRAD::Sys::FILEEXISTS(dirname)){
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject:    Creating directory " << dirname << "...";
     ComStr << "cp -r " << OriginalName << " " << dirname;
   } else {
     if(verb > 1)
       std::cout <<   "ElmerModuleDriver:MakeProject:    Making project files from template ...";
     ComStr << "cp -r " << OriginalName << "/* " << dirname;
   }
   IRAD::Sys::InProcess System(ComStr.str());
   std::string comline;
   while(std::getline(System,comline)){
     if(verb > 1)
       std::cout << comline << std::endl;
   }
   if(verb)
     std::cout << "ElmerModuleDriver:MakeProject: done." << std::endl;
   if(verb)
     std::cout << "ElmerModuleDriver:MakeProject: Cleaning up ...";
   ComStr.str("");
   ComStr << "rm -rf " << dirname << "/.svn";
   System.Execute(ComStr.str());
   int n = 0;
   while(std::getline(System,comline))
     n++;
   pfi = ProtectedFiles.begin();
   while(pfi != ProtectedFiles.end()){
     std::string ProtectThisFile(dirname+"/"+*pfi++);
     std::string ProtectedFile(ProtectThisFile+".backup");
     if(IRAD::Sys::FILEEXISTS(ProtectedFile)){
       if(IRAD::Sys::FILEEXISTS(ProtectThisFile))
         IRAD::Sys::Remove(ProtectThisFile);
       IRAD::Sys::Rename(ProtectedFile,ProtectThisFile);
     }
   }
   pfi = CommonFiles.begin();
   while(pfi != CommonFiles.end()){
     std::string ProtectThisFile(dirname+"/"+*pfi++);
     std::string ProtectedFile(ProtectThisFile+".backup");
     std::string CommonFileTemplate(ProtectThisFile+".template");
     if(IRAD::Sys::FILEEXISTS(ProtectedFile)){
       if(IRAD::Sys::FILEEXISTS(ProtectThisFile))
         IRAD::Sys::Rename(ProtectThisFile,CommonFileTemplate);
       IRAD::Sys::Rename(ProtectedFile,ProtectThisFile);
     }
   }
   if(verb)
     std::cout << "ElmerModuleDriver:MakeProject: done." << std::endl;
   if(verb > 1)
     std::cout << "ElmerModuleDriver:MakeProject: Done creating new project files." 
               << std::endl;
   if(verb)
     std::cout << "ElmerModuleDriver:MakeProject: Renaming project...";
   if(IRAD::Sys::ChDir(dirname)){
     std::cout << "ElmerModuleDriver:MakeProject: Something went wrong, cannot find new project directory." 
               << std::endl;
     return(1);
   }
   ComStr.str("");
   ComStr << "grep -i " << OriginalName << " -r * | cut -d \":\" -f 1 | sort | uniq";
   if(verb > 1)
     std::cout << "   " << ComStr.str() << std::endl;
   System.Execute(ComStr.str());
   std::vector<std::string> filenames;
   if(verb > 1)
     std::cout << "ElmerModuleDriver:MakeProject:    Files to change:" << std::endl;
   while(std::getline(System,comline)){
     if(!Excluded(comline)){
       filenames.push_back(comline);
       if(verb > 1)
         std::cout << "     " << comline << std::endl;
     }
   }
   std::vector<std::string>::iterator fni = filenames.begin();
   if(verb > 1)
     std::cout << "ElmerModuleDriver:MakeProject:    Processing files...."; 
   while(fni != filenames.end()){
     std::string filename(*fni++);
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject:      File: " << filename << std::endl;
     ComStr.str("");
     ComStr << "sed -i 's/" << OriginalName << "/" << NewName << "/g' " << filename;
     if(verb > 1)
       std::cout << "ElmerModuleDriver:MakeProject:        " << ComStr.str() << std::endl;
     System.Execute(ComStr.str());
     int n = 0;
     while(std::getline(System,comline))
       n++;
     ComStr.str("");
     ComStr << "sed -i 's/" << oupper << "/" << nupper << "/g' " << filename;
     if(verb > 1)
       std::cout << "       " << ComStr.str() << std::endl;
     //    std::cout << ComStr.str() << std::endl;
     System.Execute(ComStr.str());
     while(std::getline(System,comline))
       n++;
     ComStr.str("");
     ComStr << "sed -i 's/" << olower << "/" << nlower << "/g' " << filename;
     if(verb > 1)
       std::cout << "       " << ComStr.str() << std::endl;
     //    std::cout << ComStr.str() << std::endl;
     System.Execute(ComStr.str());
     while(std::getline(System,comline))
       n++;
   }
   if(verb > 1)
     std::cout << "ElmerModuleDriver:MakeProject:    Done processing file contents." << std::endl
               << "   Renaming files..." << std::endl;
   ComStr.str("");
   // Now the inside of all files is fixed, need to fix filenames
   ComStr << "find . -name \"*" << OriginalName << "*\"";
   System.Execute(ComStr.str());
   std::string::size_type olen = OriginalName.length();
   std::string::size_type nlen = NewName.length();
   while(std::getline(System,comline)){
     if(verb > 1) 
       std::cout << "ElmerModuleDriver:MakeProject:      Renaming " << comline << " to ";
     std::string newname(comline);
     std::string::size_type x = newname.find(OriginalName);
     while(x != std::string::npos){
       newname.replace(x,olen,NewName);
       x = newname.find(OriginalName);
     }
     ComStr.str("");
     if(verb > 1)
       std::cout << newname << std::endl;
     ComStr << "mv " << comline << " " << newname;
     //    std::cout << ComStr.str() << std::endl;
     IRAD::Sys::InProcess MV(ComStr.str());
   }
   if(verb > 1)
     std::cout << "done." << std::endl;
   return(0);  
 }
コード例 #3
0
ファイル: suck.c プロジェクト: mingpen/OpenNT
VOID EnumFiles(
    LPSTR           lpSearch,
    FILENAME        *fnParent,
    DWORD           mask,
    UINT            iThread
) {
    WIN32_FIND_DATA wfd;
    HANDLE          hFind;
    CHAR            NewName[MAX_PATH];
    CHAR            *pch;
    CHAR            *pchSpot;
    BOOL            f;
    FILENAME        *fnChild;
    DWORD           rc;

#ifdef SEE_EM
printf("Enuming <%s>\n", lpSearch );
#endif

    strcpy( NewName, lpSearch );
    pch = NewName + strlen(NewName) - 1;

    if ( *pch != '\\' && *pch != '/' && *pch != ':' ) {
        *++pch = '\\';
    }
    strcpy( ++pch, "*.*" );
    pchSpot = pch;


    do {
        hFind = FindFirstFile( NewName, &wfd );

        if ( hFind != (HANDLE)0xFFFFFFFF ) {
            break;
        }

        rc = GetLastError();
        switch( rc ) {
            default:
                printf("%s: Error: GetLastError = %08ld  What does it mean?\n", NewName, rc );
            case ERROR_SHARING_PAUSED:
            case ERROR_BAD_NETPATH:
            case ERROR_BAD_NET_NAME:
            case ERROR_NO_LOGON_SERVERS:
            case ERROR_VC_DISCONNECTED:
            case ERROR_UNEXP_NET_ERR:
                if ( !fProblems[iThread] ) {
                    printf("Error accesing %s, switching to silent retry\n", lpSearch );
                    fProblems[iThread] = TRUE;
                }
                if (EverybodyBailOut) {
                    return;
                }
                Sleep( 10000 );      // Wait for 10 seconds
                break;
                break;
        }

    } while( TRUE );

    if ( hFind != NULL ) {
        do {
            if (!Excluded(&wfd))
                AddFile( fnParent, &wfd, mask );
            f = FindNextFile( hFind, &wfd );
        } while ( f );
    }

    FindClose( hFind );

    fnChild = fnParent->fnChild.mem_ptr;
    while ( fnChild ) {

        /*
        ** If its a directory and it was one of "our" directories, then enum it
        */
        if ( (fnChild->dwStatus & DIRECTORY) == DIRECTORY
              && (fnChild->dwStatus & mask) == mask ) {
            pch = pchSpot;

            strcpy( pch, fnChild->cFileName );
#ifdef SEE_EM
            printf("NewName = <%s>\n", NewName );
#endif
            EnumFiles( NewName, fnChild, mask, iThread );
        }
        fnChild = fnChild->fnSibling.mem_ptr;
    }

}