xref: /aosp_15_r20/system/incremental_delivery/incfs/incfsdump/main.cpp (revision 9190c2a8bd3622b7aa9bd7bfe4b3aec77820f478)
1*9190c2a8SAndroid Build Coastguard Worker /*
2*9190c2a8SAndroid Build Coastguard Worker  * Copyright (C) 2020 The Android Open Source Project
3*9190c2a8SAndroid Build Coastguard Worker  *
4*9190c2a8SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*9190c2a8SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*9190c2a8SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*9190c2a8SAndroid Build Coastguard Worker  *
8*9190c2a8SAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*9190c2a8SAndroid Build Coastguard Worker  *
10*9190c2a8SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*9190c2a8SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*9190c2a8SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*9190c2a8SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*9190c2a8SAndroid Build Coastguard Worker  * limitations under the License.
15*9190c2a8SAndroid Build Coastguard Worker  */
16*9190c2a8SAndroid Build Coastguard Worker 
17*9190c2a8SAndroid Build Coastguard Worker #include "dump.h"
18*9190c2a8SAndroid Build Coastguard Worker 
19*9190c2a8SAndroid Build Coastguard Worker #include <iostream>
20*9190c2a8SAndroid Build Coastguard Worker #include <string_view>
21*9190c2a8SAndroid Build Coastguard Worker 
22*9190c2a8SAndroid Build Coastguard Worker using namespace std::literals;
23*9190c2a8SAndroid Build Coastguard Worker 
usage()24*9190c2a8SAndroid Build Coastguard Worker static void usage() {
25*9190c2a8SAndroid Build Coastguard Worker     std::cerr << "Usage: incfsdump backing_file1 [backing_file2...]\n";
26*9190c2a8SAndroid Build Coastguard Worker }
27*9190c2a8SAndroid Build Coastguard Worker 
main(int argc,char ** argv)28*9190c2a8SAndroid Build Coastguard Worker int main(int argc, char** argv) {
29*9190c2a8SAndroid Build Coastguard Worker     if (argc < 2) {
30*9190c2a8SAndroid Build Coastguard Worker         std::cerr << "Bad command line: requires at least one argument\n";
31*9190c2a8SAndroid Build Coastguard Worker         usage();
32*9190c2a8SAndroid Build Coastguard Worker         return 1;
33*9190c2a8SAndroid Build Coastguard Worker     }
34*9190c2a8SAndroid Build Coastguard Worker 
35*9190c2a8SAndroid Build Coastguard Worker     bool printedHelp = false;
36*9190c2a8SAndroid Build Coastguard Worker     for (int i = 1; i < argc; ++i) {
37*9190c2a8SAndroid Build Coastguard Worker         if (argv[i] == "--help"sv || argv[i] == "-h"sv) {
38*9190c2a8SAndroid Build Coastguard Worker             if (std::exchange(printedHelp, true) == false) {
39*9190c2a8SAndroid Build Coastguard Worker                 usage();
40*9190c2a8SAndroid Build Coastguard Worker             }
41*9190c2a8SAndroid Build Coastguard Worker         }
42*9190c2a8SAndroid Build Coastguard Worker         android::incfs::dump(argv[i]);
43*9190c2a8SAndroid Build Coastguard Worker     }
44*9190c2a8SAndroid Build Coastguard Worker }
45