Fixed broken arguments, added testing for arguments

This commit is contained in:
2022-11-16 16:08:14 -06:00
parent 3df863d285
commit cf001272db
8 changed files with 89 additions and 5 deletions
+37 -2
View File
@@ -18,11 +18,42 @@ void Fuse(int argc, char* argv[])
FuseGivenTest(&fuseArgs, argv[0]);
}
// New method for getting arguments
void FuseGetArgs(int argc, char* argv[], fuseArgStruct* fuseArgs)
{
for (int i = 0; i < argc; i++)
{
if (argv[i][0] == '-' && argv[i][1] == 'l')
fuseArgs->list = 1;
if (argv[i][0] == '-' && argv[i][1] == 'a')
{
fuseArgs->add = 1;
fuseArgs->toAdd = strdup(argv[i+1]);
}
if (argv[i][0] == '-' && argv[i][1] == 'r')
{
fuseArgs->remove = 1;
fuseArgs->toRemove = strdup(argv[i+1]);
}
if (argv[i][0] == '-' && argv[i][1] == 'e')
{
fuseArgs->extract = 1;
fuseArgs->toExtract = strdup(argv[i+1]);
}
if (argv[i][0] == '-' && argv[i][1] == 'f')
{
fuseArgs->filefsname = 1;
fuseArgs->fsname = strdup(argv[i+1]);
}
}
}
// Originally given method for getting arguments
// Depreciated
void FuseCheckArgs(int argc, char* argv[], fuseArgStruct* fuseArgs)
{
int opt;
while ((opt = getopt(argc, argv, "la:r:e:")) != -1)
while ((opt = getopt(argc, argv, "la:r:e:f:")) != -1)
{
switch (opt)
{
@@ -41,6 +72,10 @@ void FuseCheckArgs(int argc, char* argv[], fuseArgStruct* fuseArgs)
fuseArgs->extract = 1;
fuseArgs->toExtract = strdup(optarg);
break;
case 'f':
fuseArgs->filefsname = 1;
fuseArgs->fsname = strdup(optarg);
break;
default:
FuseUsageError(argv[0]);
}
@@ -121,4 +156,4 @@ int zerosize(int fd)
if(stats.st_size == 0)
return 1;
return 0;
}
}