<filename>scripts/sdk/bazel/tests/common/build_defs/package_verifier.py
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import argparse
import os
import sys


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--meta',
                        help='The path to the package\'s meta directory',
                        required=True)
    parser.add_argument('--files',
                        help='The list of expected files in the package',
                        default=[],
                        nargs='*')
    parser.add_argument('--stamp',
                        help='The path to the stamp file in case of success',
                        required=True)
    args = parser.parse_args()

    all_files = []
    # List the files in the meta directory itself.
    for root, dirs, files in os.walk(args.meta):
        all_files += map(
            lambda f: os.path.relpath(os.path.join(root, f), args.meta), files)
    # Add the files outside of the meta directory, which are listed in
    # meta/contents.
    with open(os.path.join(args.meta, 'meta', 'contents')) as contents_file:
        all_files += map(lambda l: l.strip().split('=', 1)[0],
                         contents_file.readlines())

    has_errors = False
    for file in args.files:
        if file not in all_files:
            print('Missing ' + file)
            has_errors = True
    if has_errors:
        print('Known files:')
        print(all_files)
        return 1

    with open(args.stamp, 'w') as stamp_file:
        stamp_file.write('Success!')

    return 0


if __name__ == '__main__':
    sys.exit(main())

<filename>scripts/sdk/bazel/tests/common/build_defs/package_verifier.py
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import argparse
import os
import sys


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--meta',
                        help='The path to the package\'s meta directory',
                        required=True)
    parser.add_argument('--files',
                        help='The list of expected files in the package',
                        default=[],
                        nargs='*')
    parser.add_argument('--stamp',
                        help='The path to the stamp file in case of success',
                        required=True)
    args = parser.parse_args()

    all_files = []
    # List the files in the meta directory itself.
    for root, dirs, files in os.walk(args.meta):
        all_files += map(
            lambda f: os.path.relpath(os.path.join(root, f), args.meta), files)
    # Add the files outside of the meta directory, which are listed in
    # meta/contents.
    with open(os.path.join(args.meta, 'meta', 'contents')) as contents_file:
        all_files += map(lambda l: l.strip().split('=', 1)[0],
                         contents_file.readlines())

    has_errors = False
    for file in args.files:
        if file not in all_files:
            print('Missing ' + file)
            has_errors = True
    if has_errors:
        print('Known files:')
        print(all_files)
        return 1

    with open(args.stamp, 'w') as stamp_file:
        stamp_file.write('Success!')

    return 0


if __name__ == '__main__':
    sys.exit(main())

# Copyright 2018 The Fuchsia Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # List the files in the meta directory itself. # Add the files outside of the meta directory, which are listed in # meta/contents.