xref: /build/scripts/get_all_files.py (revision 5f9996aa)
15f9996aaSopenharmony_ci#!/usr/bin/env python
25f9996aaSopenharmony_ci# -*- coding: utf-8 -*-
35f9996aaSopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd.
45f9996aaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
55f9996aaSopenharmony_ci# you may not use this file except in compliance with the License.
65f9996aaSopenharmony_ci# You may obtain a copy of the License at
75f9996aaSopenharmony_ci#
85f9996aaSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
95f9996aaSopenharmony_ci#
105f9996aaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
115f9996aaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
125f9996aaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135f9996aaSopenharmony_ci# See the License for the specific language governing permissions and
145f9996aaSopenharmony_ci# limitations under the License.
155f9996aaSopenharmony_ci
165f9996aaSopenharmony_ciimport sys
175f9996aaSopenharmony_ciimport os
185f9996aaSopenharmony_ciimport argparse
195f9996aaSopenharmony_ci
205f9996aaSopenharmony_cisys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
215f9996aaSopenharmony_cifrom scripts.util.file_utils import write_file  # noqa E402
225f9996aaSopenharmony_ci
235f9996aaSopenharmony_ci
245f9996aaSopenharmony_cidef main() -> int:
255f9996aaSopenharmony_ci    parser = argparse.ArgumentParser()
265f9996aaSopenharmony_ci    parser.add_argument('--base-dir', required=True)
275f9996aaSopenharmony_ci    parser.add_argument('--sub-dir-list', nargs='+', required=False)
285f9996aaSopenharmony_ci    parser.add_argument('--result-file', required=False)
295f9996aaSopenharmony_ci    args = parser.parse_args()
305f9996aaSopenharmony_ci
315f9996aaSopenharmony_ci    file_list = []
325f9996aaSopenharmony_ci    dir_list = []
335f9996aaSopenharmony_ci    if args.sub_dir_list:
345f9996aaSopenharmony_ci        for sub_dir in args.sub_dir_list:
355f9996aaSopenharmony_ci            dir_list.append(os.path.join(args.base_dir, sub_dir))
365f9996aaSopenharmony_ci    else:
375f9996aaSopenharmony_ci        dir_list.append(args.base_dir)
385f9996aaSopenharmony_ci    for _dir in dir_list:
395f9996aaSopenharmony_ci        if not os.path.exists(_dir):
405f9996aaSopenharmony_ci            continue
415f9996aaSopenharmony_ci        for root, _, files in os.walk(_dir):
425f9996aaSopenharmony_ci            for _file in files:
435f9996aaSopenharmony_ci                file_list.append(os.path.realpath(os.path.join(root, _file)))
445f9996aaSopenharmony_ci
455f9996aaSopenharmony_ci    if args.result_file:
465f9996aaSopenharmony_ci        write_file(args.result_file, "\n".join(file_list))
475f9996aaSopenharmony_ci    else:
485f9996aaSopenharmony_ci        for _file in file_list:
495f9996aaSopenharmony_ci            print(_file)
505f9996aaSopenharmony_ci    return 0
515f9996aaSopenharmony_ci
525f9996aaSopenharmony_ci
535f9996aaSopenharmony_ciif __name__ == '__main__':
545f9996aaSopenharmony_ci    sys.exit(main())
55