powershell/generators/nuspec.ts (40 lines of code) (raw):

/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { AutorestExtensionHost as Host } from '@autorest/extension-base'; import { Project } from '../internal/project'; function removeCd(path: string): string { return path.startsWith('./') ? path.replace('./', '') : path; } export async function generateNuspec(project: Project) { const dependencies = project.azure ? ` <dependencies> <dependency id="Az.Accounts" version="${project.accountsVersionMinimum}" /> </dependencies>` : ''; project.state.writeFile(project.nuspec, `<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> <metadata> <id>${project.moduleName}</id> <version>${project.moduleVersion}</version> <authors>${project.metadata.authors}</authors> <owners>${project.metadata.owners}</owners> <requireLicenseAcceptance>${project.metadata.requireLicenseAcceptance}</requireLicenseAcceptance> <licenseUrl>${project.metadata.licenseUri}</licenseUrl> <projectUrl>${project.metadata.projectUri}</projectUrl> <description>${project.metadata.description}</description> <releaseNotes></releaseNotes> <copyright>${project.metadata.copyright}</copyright> <tags>${project.metadata.tags}</tags>${dependencies} </metadata> <files> <file src="${removeCd(project.formatPs1xml)}" /> <file src="${removeCd(project.psd1)}" /> <file src="${removeCd(project.psm1)}" /> <!-- https://github.com/NuGet/Home/issues/3584 --> <file src="${removeCd(project.dll)}" target="${removeCd(project.binFolder)}" /> <file src="${removeCd(project.binFolder)}\\${project.dllName}.deps.json" target="${removeCd(project.binFolder)}" /> <file src="${removeCd(project.internalFolder)}\\**\\*.*" exclude="${removeCd(project.internalFolder)}\\README.md" target="${removeCd(project.internalFolder)}" /> <file src="${removeCd(project.customFolder)}\\**\\*.*" exclude="${removeCd(project.customFolder)}\\README.md;${removeCd(project.customFolder)}\\**\\*.cs" target="${removeCd(project.customFolder)}" /> <file src="${removeCd(project.docsFolder)}\\**\\*.md" exclude="${removeCd(project.docsFolder)}\\README.md" target="${removeCd(project.docsFolder)}" /> <file src="${removeCd(project.exportsFolder)}\\**\\ProxyCmdletDefinitions.ps1" target="${removeCd(project.exportsFolder)}" /> <file src="${removeCd(project.utilsFolder)}\\**\\*.*" target="${removeCd(project.utilsFolder)}" /> </files> </package>`, undefined, 'source-file-other'); }