src/CLIParser.h
branchv_0
changeset 15 e7f05d7c4336
parent 12 0a297eb46ba1
child 16 6180161335be
equal deleted inserted replaced
14:4e03954642bf 15:e7f05d7c4336
    57 	static const string_t OPTION_AS;
    57 	static const string_t OPTION_AS;
    58 	static const string_t OPTION_OPTION;
    58 	static const string_t OPTION_OPTION;
    59 
    59 
    60 	Configuration parse(const std::vector<string_t>& arguments) {
    60 	Configuration parse(const std::vector<string_t>& arguments) {
    61 		Configuration c;
    61 		Configuration c;
    62 		if (arguments.empty()) {
    62 
    63 			// default set of fields:
    63 		{
    64 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_PATH_ORIGINAL));
       
    65 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_PATH_ABSOLUTE));
       
    66 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_PATH_CANONICAL));
       
    67 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_NAME));
       
    68 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_TYPE));
       
    69 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_TYPE,{L"type_a", L"type_b"})); // one field → two attributes with same value
       
    70 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_SYMLINK_TARGET_TYPE));
       
    71 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_SYMLINK_TARGET));
       
    72 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_SIZE));
       
    73 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_OWNER));
       
    74 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_GROUP));
       
    75 			// c.fields.push_back(RequestedField(RequestedField::GROUP_XATTR, L"user.xdg.origin.url"));
       
    76 		} else {
       
    77 			string_t currentGroup;
    64 			string_t currentGroup;
    78 			string_t currentName;
    65 			string_t currentName;
    79 			std::vector<string_t> currentAliases;
    66 			std::vector<string_t> currentAliases;
    80 			std::vector<string_t> currentOptions;
    67 			std::vector<string_t> currentOptions;
    81 
    68 
    96 				}
    83 				}
    97 			}
    84 			}
    98 
    85 
    99 			addField(c, currentGroup, currentName, currentAliases, currentOptions); // last field
    86 			addField(c, currentGroup, currentName, currentAliases, currentOptions); // last field
   100 		}
    87 		}
       
    88 
       
    89 
       
    90 		if (c.fields.empty()) {
       
    91 			// default set of fields:
       
    92 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_PATH_ORIGINAL));
       
    93 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_PATH_ABSOLUTE));
       
    94 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_PATH_CANONICAL));
       
    95 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_NAME));
       
    96 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_TYPE));
       
    97 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_TYPE,{L"type_a", L"type_b"})); // one field → two attributes with same value
       
    98 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_SYMLINK_TARGET_TYPE));
       
    99 			// c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_SYMLINK_TARGET));
       
   100 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_SIZE));
       
   101 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_OWNER));
       
   102 			c.fields.push_back(RequestedField(RequestedField::GROUP_FILE, FileAttributeFinder::FIELD_GROUP));
       
   103 			// c.fields.push_back(RequestedField(RequestedField::GROUP_XATTR, L"user.xdg.origin.url"));
       
   104 		}
       
   105 
   101 		return c;
   106 		return c;
   102 	}
   107 	}
   103 
   108 
   104 	virtual ~CLIParser() {
   109 	virtual ~CLIParser() {
   105 	}
   110 	}