308{
309 static const char*
usage =
"Usage: pfc_print [-h] [-c config_file] [-u B|kB|MB] [-v] [-j] [-i indent] path ...\n";
310 char unit = 'k';
311 bool verbose = false;
313 int indent = -1;
314 const char* cfgn = 0;
315
317
320
323 "help", 1, "h",
324 "config", 1, "c:",
325 "unit", 1, "u:",
326 "verbose", 1, "v",
327 "json", 1, "j",
328 "indent", 1, "i:",
329 (const char *) 0);
330
331 Spec.Set(argc-1, &argv[1]);
332 char theOpt;
333
334 while ((theOpt = Spec.getopt()) != (char)-1)
335 {
336
337 switch (theOpt)
338 {
339 case 'c': {
340 cfgn = Spec.argval;
341 int fd =
open(cfgn, O_RDONLY, 0);
343 break;
344 }
345 case 'u': {
346 if (strcmp(Spec.argval,"B") && strcmp(Spec.argval,"kB") && strcmp(Spec.argval,"MB")) {
347 printf(
"%s Error: -unit argument can only be B, kB or MB\n",
usage);
348 exit(1);
349 }
350 unit = Spec.argval[0];
351 break;
352 }
353 case 'v': {
354 verbose = true;
355 break;
356 }
357 case 'j': {
359 break;
360 }
361 case 'i': {
362 indent = std::stoi(Spec.argval);
363 break;
364 }
365 case 'h':
366 default: {
368 exit(1);
369 }
370 }
371 }
372
373
374 int efs =
open(
"/dev/null",O_RDWR, 0);
380 if ( ! ossSucc)
381 {
382 printf("can't load oss\n");
383 exit(1);
384 }
386
387 const char* path;
388 while ((path = Spec.getarg()))
389 {
390 if ( ! path)
391 {
393 exit(1);
394 }
395
396
397 if ( ! strncmp(&path[0], "root:/", 6))
398 {
400 {
401 printf("Configuration file not specified.\n");
402 exit(1);
403 }
404 char *var;
405 while((var =
Config.GetFirstWord()))
406 {
407
408 if ( ! strncmp(var,"oss.localroot", strlen("oss.localroot")))
409 {
410 std::string tmp =
Config.GetWord();
411 tmp += &path[6];
412
414 }
415 }
416 }
417 else
418 {
420 }
421 }
422
423 return 0;
424}
bool Plugin(XrdAccAuthorize *&piP)
Get Authorization plugin.
static XrdOfsConfigPI * New(const char *cfn, XrdOucStream *cfgP, XrdSysError *errP, XrdVersionInfo *verP=0, XrdSfsFileSystem *sfsP=0)
bool Load(int what, XrdOucEnv *envP=0)