Files
Brian Smith 415e51decf Windows: Add generators for chocolatey build files
Chocolatey needs a couple different kinds of build files to specify how
and what to package:
* A `.nuspec` that describes basic package metadata such as version.
* A `chocolateyInstall.ps1` that is executed during package install.

This commit adds classes that wrap the generation for simple cases.
2020-07-14 12:46:29 -07:00

1.3 KiB

nuspec Generator

This is module wraps Python code generated via the generateDS library.

It provides a simple interface for programmatically constructing and outputting valid .nuspec files to construct nuget or chocolatey packages.

Using the simple wrapper

from nuget import NuspecGenerator

pkg = NuspecGenerator(
    id="test",
    title="Test Software (Don't use!)",
    version="0.0.1",
    authors="me",
    description="Test software generated with python!"
)

Using the generated code directly

import nuget.generated._nuspec as nuspec


test = nuspec.package(
    metadata=nuspec.metadataType(
        id="test", version="0.0.1", authors="me", description="generated with
python!"
    )
)
with open("./test.nuspec", "w") as f:
    test.export(outfile=f, level=0)

with open("./test.nuspec", 'r') as f:
    print(f.read())

Regenerating the definitions

The definitions can be (re)created by running the regenerate_nuspec_ds.py script as shown below. The script automates some particulars around getting the schema .xsd file, and setting the appropriate XML namespace. The script has more details for the curious.

python Scripts\regenerate_nuspec_ds.py --output-path --output-path .\Code\nuget\generated\_nuspec.py