Example #1
0
    def generate_manifest(self):
        '''generate manigest files for GCS to download'''
        self.progress("Generating manifest")
        base_url = 'https://firmware.ardupilot.org'
        generator = generate_manifest.ManifestGenerator(
            self.binaries, base_url)
        content = generator.json()
        new_json_filepath = os.path.join(self.binaries, "manifest.json.new")
        self.write_string_to_filepath(content, new_json_filepath)
        # provide a pre-compressed manifest.  For reference, a 7M manifest
        # "gzip -9"s to 300k in 1 second, "xz -e"s to 80k in 26 seconds
        new_json_filepath_gz = os.path.join(self.binaries,
                                            "manifest.json.gz.new")
        with gzip.open(new_json_filepath_gz, 'wb') as gf:
            if running_python3:
                content = bytes(content, 'ascii')
            gf.write(content)
        json_filepath = os.path.join(self.binaries, "manifest.json")
        json_filepath_gz = os.path.join(self.binaries, "manifest.json.gz")
        shutil.move(new_json_filepath, json_filepath)
        shutil.move(new_json_filepath_gz, json_filepath_gz)
        self.progress("Manifest generation successful")

        self.progress("Generating stable releases")
        gen_stable.make_all_stable(self.binaries)
        self.progress("Generate stable releases done")
Example #2
0
    def generate_manifest(self):
        '''generate manigest files for GCS to download'''
        self.progress("Generating manifest")
        base_url = 'http://firmware.ardupilot.org'
        generator = generate_manifest.ManifestGenerator(self.binaries,
                                                        base_url)
        content = generator.json()
        new_json_filepath = os.path.join(self.binaries, "manifest.json.new")
        self.write_string_to_filepath(content, new_json_filepath)
        # provide a pre-compressed manifest.  For reference, a 7M manifest
        # "gzip -9"s to 300k in 1 second, "xz -e"s to 80k in 26 seconds
        new_json_filepath_gz = os.path.join(self.binaries,
                                            "manifest.json.gz.new")
        with gzip.open(new_json_filepath_gz, 'wb') as gf:
            gf.write(content)
        json_filepath = os.path.join(self.binaries, "manifest.json")
        json_filepath_gz = os.path.join(self.binaries, "manifest.json.gz")
        shutil.move(new_json_filepath, json_filepath)
        shutil.move(new_json_filepath_gz, json_filepath_gz)
        self.progress("Manifest generation successful")

        self.progress("Generating stable releases")
        gen_stable.make_all_stable(self.binaries)
        self.progress("Generate stable releases done")
Example #3
0
    parser = argparse.ArgumentParser(description='generate manifest.json')

    parser.add_argument('--outfile',
                        type=str,
                        default=None,
                        help='output file, default stdout')
    parser.add_argument('--baseurl',
                        type=str,
                        default="https://firmware.ardupilot.org",
                        help='base binaries directory')
    parser.add_argument('basedir',
                        type=str,
                        default="-",
                        help='base binaries directory')

    args = parser.parse_args()

    # ensure all stable directories are created
    gen_stable.make_all_stable(args.basedir)

    generator = ManifestGenerator(args.basedir, args.baseurl)
    if args.outfile is None:
        print(generator.json())
    else:
        f = open(args.outfile, "w")
        content = generator.json()
        if running_python3:
            content = bytes(content, 'ascii')
        f.write(content)
        f.close()
Example #4
0
        structure = self.walk_directory(self.basedir)
        return json.dumps(structure, indent=4)


def usage():
    return '''Usage:
generate-manifest.py basedir'''


if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser(description='generate manifest.json')

    parser.add_argument('--outfile', type=str, default=None, help='output file, default stdout')
    parser.add_argument('--baseurl', type=str, default="http://firmware.ardupilot.org", help='base binaries directory')
    parser.add_argument('basedir', type=str, default="-", help='base binaries directory')

    args = parser.parse_args()

    # ensure all stable directories are created
    gen_stable.make_all_stable(args.basedir)

    generator = ManifestGenerator(args.basedir, args.baseurl)
    if args.outfile is None:
        print(generator.json())
    else:
        f = open(args.outfile, "w")
        f.write(generator.json())
        f.close()