skipThisNisccCert.cpp [plain text]
#include <Security/cuFileIo.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <sys/param.h>
#define MAX_CERT_SIZE (16 * 1024)
static void usage(char **argv)
{
printf("usage: %s file\n", argv[0]);
exit(1);
}
static const char *skipTheseFiles[] =
{
".",
"..",
"CVS",
#if 0
"00000023",
"00000098",
"00000116",
"00000117",
#endif
NULL
};
static bool shouldWeSkip(
const char *fullPath) {
const char *lastSlash = NULL;
const char *cp;
for(cp=fullPath; *cp!=NULL; cp++) {
if(*cp == '/') {
lastSlash = cp;
}
}
if(lastSlash == NULL) {
cp = fullPath;
}
else {
cp++;
}
char fileName[MAXPATHLEN];
strcpy(fileName, cp);
for(const char **stf=skipTheseFiles; *stf!=NULL; stf++) {
const char *tf = *stf;
if(!strcmp(fileName, *stf)) {
return true;
}
}
return false;
}
int main(int argc, char **argv)
{
if(argc != 2 ) {
usage(argv);
}
const char *filename = argv[1];
if(shouldWeSkip(filename)) {
exit(1);
}
struct stat sb;
if(stat(filename, &sb)) {
perror(filename);
exit(2);
}
if(sb.st_size > MAX_CERT_SIZE) {
exit(1);
}
exit(0);
}