From f22d6fc3d1e8938e53f03f355636027fb849ec0b Mon Sep 17 00:00:00 2001 From: Bastian Eicher Date: Wed, 27 Mar 2024 23:32:01 +0100 Subject: [PATCH] Extracted 0publish, 0capture and 0bootstrap command-line tools into separate repos --- .github/workflows/build.yml | 12 +- .gitignore | 8 +- .tx/config | 8 +- 0publish-gui-dotnet.xml | 29 ++ 0publish-gui-dotnet.xml.template | 31 ++ 0publish-win.xml | 32 -- 0publish-win.xml.template | 34 -- README.md | 14 +- build.ps1 | 2 +- renovate.json | 8 +- .../Controls/ArchiveEditor.Designer.cs | 0 .../Controls/ArchiveEditor.cs | 0 .../Controls/DescriptionEditor.cs | 0 .../Controls/DownloadRetrievalMethodEditor.cs | 0 .../Controls/EntryPointEditor.cs | 0 .../Controls/FeedEditor.Designer.cs | 0 .../Controls/FeedEditor.cs | 0 .../Controls/FeedStructureEditor.cs | 0 .../Controls/IconEditor.Designer.cs | 0 .../Controls/IconEditor.cs | 0 .../Controls/RecipeEditor.Designer.cs | 0 .../Controls/RecipeEditor.cs | 0 .../Controls/RetrievalMethodEditor.cs | 0 .../Controls/SingleFileEditor.Designer.cs | 0 .../Controls/SingleFileEditor.cs | 0 .../Controls/SummaryEditor.cs | 0 src/Directory.Build.props | 44 --- .../InstallerCapture.cs | 0 .../MainForm.Designer.cs | 0 src/{Publish.WinForms => }/MainForm.cs | 0 src/{Publish.WinForms => }/MainForm.resx | 0 .../MassSignForm.Designer.cs | 0 src/{Publish.WinForms => }/MassSignForm.cs | 0 src/{Publish.WinForms => }/MassSignForm.resx | 0 .../NewFeedWizard.Designer.cs | 0 src/{Publish.WinForms => }/NewFeedWizard.cs | 0 src/{Publish.WinForms => }/NewFeedWizard.resx | 0 src/{Publish.WinForms => }/Program.cs | 0 .../Properties/ImageResources.Designer.cs | 0 .../Properties/ImageResources.resx | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.cs.resx | 0 .../Properties/Resources.de.resx | 0 .../Properties/Resources.el.resx | 0 .../Properties/Resources.es.resx | 0 .../Properties/Resources.fr.resx | 0 .../Properties/Resources.id.resx | 0 .../Properties/Resources.it.resx | 0 .../Properties/Resources.ja.resx | 0 .../Properties/Resources.ko.resx | 0 .../Properties/Resources.nl.resx | 0 .../Properties/Resources.pl.resx | 0 .../Properties/Resources.pt-BR.resx | 0 .../Properties/Resources.pt-PT.resx | 0 .../Properties/Resources.resx | 0 .../Properties/Resources.ro.resx | 0 .../Properties/Resources.ru.resx | 0 .../Properties/Resources.tr.resx | 0 .../Properties/Resources.zh.resx | 0 src/Publish.Cli/BootstrapCommand.cs | 228 ----------- src/Publish.Cli/CaptureCommand.cs | 153 -------- src/Publish.Cli/ICommand.cs | 24 -- src/Publish.Cli/Program.cs | 72 ---- .../Properties/Resources.Designer.cs | 361 ------------------ src/Publish.Cli/Properties/Resources.cs.resx | 195 ---------- src/Publish.Cli/Properties/Resources.de.resx | 195 ---------- src/Publish.Cli/Properties/Resources.el.resx | 195 ---------- src/Publish.Cli/Properties/Resources.es.resx | 195 ---------- src/Publish.Cli/Properties/Resources.fr.resx | 195 ---------- src/Publish.Cli/Properties/Resources.id.resx | 195 ---------- src/Publish.Cli/Properties/Resources.it.resx | 195 ---------- src/Publish.Cli/Properties/Resources.ja.resx | 195 ---------- src/Publish.Cli/Properties/Resources.ko.resx | 195 ---------- src/Publish.Cli/Properties/Resources.nl.resx | 195 ---------- src/Publish.Cli/Properties/Resources.pl.resx | 195 ---------- .../Properties/Resources.pt-BR.resx | 195 ---------- .../Properties/Resources.pt-PT.resx | 195 ---------- src/Publish.Cli/Properties/Resources.resx | 221 ----------- src/Publish.Cli/Properties/Resources.ro.resx | 195 ---------- src/Publish.Cli/Properties/Resources.ru.resx | 195 ---------- src/Publish.Cli/Properties/Resources.tr.resx | 195 ---------- src/Publish.Cli/Properties/Resources.zh.resx | 195 ---------- src/Publish.Cli/Publish.Cli.csproj | 49 --- src/Publish.Cli/PublishCommand.cs | 243 ------------ src/Publish.Cli/_Namespace.md | 5 - src/Publish.WinForms/Controls/_Namespace.md | 5 - src/Publish.WinForms/_Namespace.md | 5 - .../Resources/NewButton.png | Bin .../Resources/NewWizardButton.png | Bin .../Resources/OpenButton.png | Bin .../Resources/RedoButton.png | Bin .../Resources/SaveButton.png | Bin .../Resources/UndoButton.png | Bin .../WelcomeForm.Designer.cs | 0 src/{Publish.WinForms => }/WelcomeForm.cs | 0 src/{Publish.WinForms => }/WelcomeForm.resx | 0 .../WizardPages/ArchiveExtract.cs | 0 .../WizardPages/Details.cs | 0 .../WizardPages/Done.cs | 0 .../WizardPages/Download.cs | 0 .../WizardPages/EntryPoint.cs | 0 .../WizardPages/Icon.cs | 0 .../WizardPages/InstallerAltDownload.cs | 0 .../WizardPages/InstallerCaptureDiff.cs | 0 .../WizardPages/InstallerCaptureStart.cs | 0 .../WizardPages/InstallerCollectFiles.cs | 0 .../WizardPages/Security.cs | 0 ...oj => ZeroInstall.Publish.WinForms.csproj} | 43 ++- ...stall.Publish.WinForms.csproj.DotSettings} | 0 src/ZeroInstall.Publish.WinForms.sln | 22 ++ ...oInstall.Publish.WinForms.sln.DotSettings} | 0 src/ZeroInstall.Tools.sln | 35 -- src/build.ps1 | 4 +- 113 files changed, 147 insertions(+), 4860 deletions(-) create mode 100644 0publish-gui-dotnet.xml create mode 100644 0publish-gui-dotnet.xml.template delete mode 100644 0publish-win.xml delete mode 100644 0publish-win.xml.template rename src/{Publish.WinForms => }/Controls/ArchiveEditor.Designer.cs (100%) rename src/{Publish.WinForms => }/Controls/ArchiveEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/DescriptionEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/DownloadRetrievalMethodEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/EntryPointEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/FeedEditor.Designer.cs (100%) rename src/{Publish.WinForms => }/Controls/FeedEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/FeedStructureEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/IconEditor.Designer.cs (100%) rename src/{Publish.WinForms => }/Controls/IconEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/RecipeEditor.Designer.cs (100%) rename src/{Publish.WinForms => }/Controls/RecipeEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/RetrievalMethodEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/SingleFileEditor.Designer.cs (100%) rename src/{Publish.WinForms => }/Controls/SingleFileEditor.cs (100%) rename src/{Publish.WinForms => }/Controls/SummaryEditor.cs (100%) delete mode 100644 src/Directory.Build.props rename src/{Publish.WinForms => }/InstallerCapture.cs (100%) rename src/{Publish.WinForms => }/MainForm.Designer.cs (100%) rename src/{Publish.WinForms => }/MainForm.cs (100%) rename src/{Publish.WinForms => }/MainForm.resx (100%) rename src/{Publish.WinForms => }/MassSignForm.Designer.cs (100%) rename src/{Publish.WinForms => }/MassSignForm.cs (100%) rename src/{Publish.WinForms => }/MassSignForm.resx (100%) rename src/{Publish.WinForms => }/NewFeedWizard.Designer.cs (100%) rename src/{Publish.WinForms => }/NewFeedWizard.cs (100%) rename src/{Publish.WinForms => }/NewFeedWizard.resx (100%) rename src/{Publish.WinForms => }/Program.cs (100%) rename src/{Publish.WinForms => }/Properties/ImageResources.Designer.cs (100%) rename src/{Publish.WinForms => }/Properties/ImageResources.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.Designer.cs (100%) rename src/{Publish.WinForms => }/Properties/Resources.cs.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.de.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.el.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.es.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.fr.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.id.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.it.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.ja.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.ko.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.nl.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.pl.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.pt-BR.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.pt-PT.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.ro.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.ru.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.tr.resx (100%) rename src/{Publish.WinForms => }/Properties/Resources.zh.resx (100%) delete mode 100644 src/Publish.Cli/BootstrapCommand.cs delete mode 100644 src/Publish.Cli/CaptureCommand.cs delete mode 100644 src/Publish.Cli/ICommand.cs delete mode 100644 src/Publish.Cli/Program.cs delete mode 100644 src/Publish.Cli/Properties/Resources.Designer.cs delete mode 100644 src/Publish.Cli/Properties/Resources.cs.resx delete mode 100644 src/Publish.Cli/Properties/Resources.de.resx delete mode 100644 src/Publish.Cli/Properties/Resources.el.resx delete mode 100644 src/Publish.Cli/Properties/Resources.es.resx delete mode 100644 src/Publish.Cli/Properties/Resources.fr.resx delete mode 100644 src/Publish.Cli/Properties/Resources.id.resx delete mode 100644 src/Publish.Cli/Properties/Resources.it.resx delete mode 100644 src/Publish.Cli/Properties/Resources.ja.resx delete mode 100644 src/Publish.Cli/Properties/Resources.ko.resx delete mode 100644 src/Publish.Cli/Properties/Resources.nl.resx delete mode 100644 src/Publish.Cli/Properties/Resources.pl.resx delete mode 100644 src/Publish.Cli/Properties/Resources.pt-BR.resx delete mode 100644 src/Publish.Cli/Properties/Resources.pt-PT.resx delete mode 100644 src/Publish.Cli/Properties/Resources.resx delete mode 100644 src/Publish.Cli/Properties/Resources.ro.resx delete mode 100644 src/Publish.Cli/Properties/Resources.ru.resx delete mode 100644 src/Publish.Cli/Properties/Resources.tr.resx delete mode 100644 src/Publish.Cli/Properties/Resources.zh.resx delete mode 100644 src/Publish.Cli/Publish.Cli.csproj delete mode 100644 src/Publish.Cli/PublishCommand.cs delete mode 100644 src/Publish.Cli/_Namespace.md delete mode 100644 src/Publish.WinForms/Controls/_Namespace.md delete mode 100644 src/Publish.WinForms/_Namespace.md rename src/{Publish.WinForms => }/Resources/NewButton.png (100%) rename src/{Publish.WinForms => }/Resources/NewWizardButton.png (100%) rename src/{Publish.WinForms => }/Resources/OpenButton.png (100%) rename src/{Publish.WinForms => }/Resources/RedoButton.png (100%) rename src/{Publish.WinForms => }/Resources/SaveButton.png (100%) rename src/{Publish.WinForms => }/Resources/UndoButton.png (100%) rename src/{Publish.WinForms => }/WelcomeForm.Designer.cs (100%) rename src/{Publish.WinForms => }/WelcomeForm.cs (100%) rename src/{Publish.WinForms => }/WelcomeForm.resx (100%) rename src/{Publish.WinForms => }/WizardPages/ArchiveExtract.cs (100%) rename src/{Publish.WinForms => }/WizardPages/Details.cs (100%) rename src/{Publish.WinForms => }/WizardPages/Done.cs (100%) rename src/{Publish.WinForms => }/WizardPages/Download.cs (100%) rename src/{Publish.WinForms => }/WizardPages/EntryPoint.cs (100%) rename src/{Publish.WinForms => }/WizardPages/Icon.cs (100%) rename src/{Publish.WinForms => }/WizardPages/InstallerAltDownload.cs (100%) rename src/{Publish.WinForms => }/WizardPages/InstallerCaptureDiff.cs (100%) rename src/{Publish.WinForms => }/WizardPages/InstallerCaptureStart.cs (100%) rename src/{Publish.WinForms => }/WizardPages/InstallerCollectFiles.cs (100%) rename src/{Publish.WinForms => }/WizardPages/Security.cs (100%) rename src/{Publish.WinForms/Publish.WinForms.csproj => ZeroInstall.Publish.WinForms.csproj} (55%) rename src/{Publish.WinForms/Publish.WinForms.csproj.DotSettings => ZeroInstall.Publish.WinForms.csproj.DotSettings} (100%) create mode 100644 src/ZeroInstall.Publish.WinForms.sln rename src/{ZeroInstall.Tools.sln.DotSettings => ZeroInstall.Publish.WinForms.sln.DotSettings} (100%) delete mode 100644 src/ZeroInstall.Tools.sln diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f128919..139da1d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - path: 0publish-win-${{steps.gitversion.outputs.nuGetVersion}}.* + path: 0publish-gui-dotnet-${{steps.gitversion.outputs.nuGetVersion}}.* # Release - name: Create GitHub Release @@ -30,10 +30,10 @@ jobs: uses: softprops/action-gh-release@v2 with: files: | - 0publish-win-${{steps.gitversion.outputs.legacySemVer}}.xml - 0publish-win-${{steps.gitversion.outputs.legacySemVer}}.tar.zst + 0publish-gui-dotnet-${{steps.gitversion.outputs.legacySemVer}}.xml + 0publish-gui-dotnet-${{steps.gitversion.outputs.legacySemVer}}.tar.zst body: | - **[Documentation and download instructions](https://docs.0install.net/tools/0publish-win/)** + **[Documentation and download instructions](https://docs.0install.net/tools/0publish-gui/)** Based on [Zero Install .NET ${{steps.gitversion.outputs.nuGetVersion}}](https://github.com/0install/0install-dotnet/releases/${{steps.gitversion.outputs.nuGetVersion}}). - name: Publish feed @@ -42,5 +42,5 @@ jobs: GH_TOKEN: ${{secrets.PERSONAL_TOKEN}} run: > gh workflow run --repo=0install/apps Incoming - -f feed_url=https://github.com/${{github.repository}}/releases/download/${{github.ref_name}}/0publish-win-${{steps.gitversion.outputs.nuGetVersion}}.xml - -f archive_url=https://github.com/${{github.repository}}/releases/download/${{github.ref_name}}/0publish-win-${{steps.gitversion.outputs.nuGetVersion}}.tar.zst + -f feed_url=https://github.com/${{github.repository}}/releases/download/${{github.ref_name}}/0publish-gui-dotnet-${{steps.gitversion.outputs.nuGetVersion}}.xml + -f archive_url=https://github.com/${{github.repository}}/releases/download/${{github.ref_name}}/0publish-gui-dotnet-${{steps.gitversion.outputs.nuGetVersion}}.tar.zst diff --git a/.gitignore b/.gitignore index a4e5d7e..c215498 100644 --- a/.gitignore +++ b/.gitignore @@ -7,10 +7,10 @@ /src/.vs/ /src/.idea/ /src/_ReSharper.*/ -/src/*/obj/ -/src/*/bin/ +/src/obj/ +/src/bin/ # Output /artifacts/ -/0publish-win-*.xml -/0publish-win-*.tar.zst +/0publish-gui-dotnet-*.xml +/0publish-gui-dotnet-*.tar.zst diff --git a/.tx/config b/.tx/config index bdafe3e..4c9ad60 100644 --- a/.tx/config +++ b/.tx/config @@ -4,10 +4,6 @@ type = RESX source_lang = en lang_map = pt_PT: pt-PT, pt_BR: pt-BR -[o:eicher:p:0install-win:r:publish-cli] -source_file = src/Publish.Cli/Properties/Resources.resx -file_filter = src/Publish.Cli/Properties/Resources..o.resx - [o:eicher:p:0install-win:r:publish-win] -source_file = src/Publish.WinForms/Properties/Resources.resx -file_filter = src/Publish.WinForms/Properties/Resources..o.resx +source_file = src/Properties/Resources.resx +file_filter = src/Properties/Resources..o.resx diff --git a/0publish-gui-dotnet.xml b/0publish-gui-dotnet.xml new file mode 100644 index 0000000..3618864 --- /dev/null +++ b/0publish-gui-dotnet.xml @@ -0,0 +1,29 @@ + + + 0publish-gui - .NET version + GUI editor for Zero Install feeds + +Publishing a program using Zero Install requires you to create an XML file +listing the available versions, where to get them, and what other software they +depend on. + +This program provides a simple graphical interface for creating and editing +these feeds. + + + https://docs.0install.net/tools/0publish-gui/ + + + + + + + + + + + + + + + diff --git a/0publish-gui-dotnet.xml.template b/0publish-gui-dotnet.xml.template new file mode 100644 index 0000000..0ee1e50 --- /dev/null +++ b/0publish-gui-dotnet.xml.template @@ -0,0 +1,31 @@ + + + 0publish-gui - .NET version + GUI editor for Zero Install feeds + +Publishing a program using Zero Install requires you to create an XML file +listing the available versions, where to get them, and what other software they +depend on. + +This program provides a simple graphical interface for creating and editing +these feeds. + + + https://docs.0install.net/tools/0publish-gui/ + + + + + + + + + + + + + + + + + diff --git a/0publish-win.xml b/0publish-win.xml deleted file mode 100644 index be57105..0000000 --- a/0publish-win.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - Zero Install Publishing Tools - helps you create and update Zero Install feeds - hilft Ihnen beim Erstellen und Aktualisieren von Zero Install Feeds - Zero Install uses feeds, XML files on the internet, to describe applications and how to download them. The Zero Install Publishing Tools allow you to create your own feeds. It consists of two main components: -the Feed Editor (split with screen graphical and XML view) -and the New Feed Wizard (walks you through the entire feed creation process, automatically extracts metadata when possible) - Zero Install verwendet Feeds, XML Dateien im Internet, um Anwendungen sowie deren Download zu beschreiben. Die Zero Install Publishing Tools ermöglichen es Ihnen, Ihre eigenen Feeds zu erstellen. Sie bestehen aus zwei Hauptkomponenten: -Der Feed Editor (Split Screen mit grafischer und XML Ansicht) -und der New Feed Wizard (leitet Sie durch den kompletten Feed-Erstellungsprozess, extrahiert automatisch Metadaten wenn möglich) - - - https://docs.0install.net/tools/0publish-win/ - - - - - - - - - - - - - - - - - - diff --git a/0publish-win.xml.template b/0publish-win.xml.template deleted file mode 100644 index ba1e44b..0000000 --- a/0publish-win.xml.template +++ /dev/null @@ -1,34 +0,0 @@ - - - Zero Install Publishing Tools - helps you create and update Zero Install feeds - hilft Ihnen beim Erstellen und Aktualisieren von Zero Install Feeds - Zero Install uses feeds, XML files on the internet, to describe applications and how to download them. The Zero Install Publishing Tools allow you to create your own feeds. It consists of two main components: -the Feed Editor (split with screen graphical and XML view) -and the New Feed Wizard (walks you through the entire feed creation process, automatically extracts metadata when possible) - Zero Install verwendet Feeds, XML Dateien im Internet, um Anwendungen sowie deren Download zu beschreiben. Die Zero Install Publishing Tools ermöglichen es Ihnen, Ihre eigenen Feeds zu erstellen. Sie bestehen aus zwei Hauptkomponenten: -Der Feed Editor (Split Screen mit grafischer und XML Ansicht) -und der New Feed Wizard (leitet Sie durch den kompletten Feed-Erstellungsprozess, extrahiert automatisch Metadaten wenn möglich) - - - https://docs.0install.net/tools/0publish-win/ - - - - - - - - - - - - - - - - - - - - diff --git a/README.md b/README.md index f3a0962..daa6ddd 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,15 @@ -# Zero Install Publishing Tools +# 0publish-gui - .NET version -[![Build](https://github.com/0install/0publish-win/workflows/Build/badge.svg?branch=master)](https://github.com/0install/0publish-win/actions?query=workflow%3ABuild) -The Zero Install Publishing Tools provide a graphical editor and wizard for creating [Zero Install feeds](https://docs.0install.net/packaging/). They also contain an alternative version of the [0publish command-line tool](https://docs.0install.net/tools/0publish/) optimized for use on Windows. These tools are based on [Zero Install .NET](https://github.com/0install/0install-dotnet). +[![Build](https://github.com/0install/0publish-gui-dotnet/workflows/Build/badge.svg)](https://github.com/0install/0publish-gui-dotnet/actions?query=workflow%3ABuild) +Publishing a program using Zero Install requires you to create an XML file listing the available versions, where to get them, and what other software they depend on. + +This program provides a simple graphical interface for creating and editing these feeds. -**[Documentation and download instructions](https://docs.0install.net/tools/0publish-win/)** +**[Documentation and download instructions](https://docs.0install.net/tools/0publish-gui/)** + +## Other versions + +See also the [Python version](https://github.com/0install/0publish-gui) of this program, for use on Linux and macOS. ## Building diff --git a/build.ps1 b/build.ps1 index b77e41b..f5814e4 100644 --- a/build.ps1 +++ b/build.ps1 @@ -3,6 +3,6 @@ $ErrorActionPreference = "Stop" pushd $PSScriptRoot src\build.ps1 $Version -.\0install.ps1 run --batch https://apps.0install.net/0install/0template.xml 0publish-win.xml.template version=$Version +.\0install.ps1 run --batch https://apps.0install.net/0install/0template.xml 0publish-gui-dotnet.xml.template version=$Version popd diff --git a/renovate.json b/renovate.json index 62bfa52..f44dcfa 100644 --- a/renovate.json +++ b/renovate.json @@ -4,7 +4,13 @@ "ignoreDeps": ["System.Resources.Extensions"], "packageRules": [ { - "matchPackagePatterns": ["gittools", "AeroWizard", "Mono.Cecil", "Vestris.ResourceLib"], + "matchPackagePatterns": ["^NanoByte", "^ZeroInstall"], + "groupName": "Zero Install .NET", + "automerge": true, + "automergeType": "branch" + }, + { + "matchPackagePatterns": ["gittools", "AeroWizard"], "automerge": true, "automergeType": "branch" } diff --git a/src/Publish.WinForms/Controls/ArchiveEditor.Designer.cs b/src/Controls/ArchiveEditor.Designer.cs similarity index 100% rename from src/Publish.WinForms/Controls/ArchiveEditor.Designer.cs rename to src/Controls/ArchiveEditor.Designer.cs diff --git a/src/Publish.WinForms/Controls/ArchiveEditor.cs b/src/Controls/ArchiveEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/ArchiveEditor.cs rename to src/Controls/ArchiveEditor.cs diff --git a/src/Publish.WinForms/Controls/DescriptionEditor.cs b/src/Controls/DescriptionEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/DescriptionEditor.cs rename to src/Controls/DescriptionEditor.cs diff --git a/src/Publish.WinForms/Controls/DownloadRetrievalMethodEditor.cs b/src/Controls/DownloadRetrievalMethodEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/DownloadRetrievalMethodEditor.cs rename to src/Controls/DownloadRetrievalMethodEditor.cs diff --git a/src/Publish.WinForms/Controls/EntryPointEditor.cs b/src/Controls/EntryPointEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/EntryPointEditor.cs rename to src/Controls/EntryPointEditor.cs diff --git a/src/Publish.WinForms/Controls/FeedEditor.Designer.cs b/src/Controls/FeedEditor.Designer.cs similarity index 100% rename from src/Publish.WinForms/Controls/FeedEditor.Designer.cs rename to src/Controls/FeedEditor.Designer.cs diff --git a/src/Publish.WinForms/Controls/FeedEditor.cs b/src/Controls/FeedEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/FeedEditor.cs rename to src/Controls/FeedEditor.cs diff --git a/src/Publish.WinForms/Controls/FeedStructureEditor.cs b/src/Controls/FeedStructureEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/FeedStructureEditor.cs rename to src/Controls/FeedStructureEditor.cs diff --git a/src/Publish.WinForms/Controls/IconEditor.Designer.cs b/src/Controls/IconEditor.Designer.cs similarity index 100% rename from src/Publish.WinForms/Controls/IconEditor.Designer.cs rename to src/Controls/IconEditor.Designer.cs diff --git a/src/Publish.WinForms/Controls/IconEditor.cs b/src/Controls/IconEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/IconEditor.cs rename to src/Controls/IconEditor.cs diff --git a/src/Publish.WinForms/Controls/RecipeEditor.Designer.cs b/src/Controls/RecipeEditor.Designer.cs similarity index 100% rename from src/Publish.WinForms/Controls/RecipeEditor.Designer.cs rename to src/Controls/RecipeEditor.Designer.cs diff --git a/src/Publish.WinForms/Controls/RecipeEditor.cs b/src/Controls/RecipeEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/RecipeEditor.cs rename to src/Controls/RecipeEditor.cs diff --git a/src/Publish.WinForms/Controls/RetrievalMethodEditor.cs b/src/Controls/RetrievalMethodEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/RetrievalMethodEditor.cs rename to src/Controls/RetrievalMethodEditor.cs diff --git a/src/Publish.WinForms/Controls/SingleFileEditor.Designer.cs b/src/Controls/SingleFileEditor.Designer.cs similarity index 100% rename from src/Publish.WinForms/Controls/SingleFileEditor.Designer.cs rename to src/Controls/SingleFileEditor.Designer.cs diff --git a/src/Publish.WinForms/Controls/SingleFileEditor.cs b/src/Controls/SingleFileEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/SingleFileEditor.cs rename to src/Controls/SingleFileEditor.cs diff --git a/src/Publish.WinForms/Controls/SummaryEditor.cs b/src/Controls/SummaryEditor.cs similarity index 100% rename from src/Publish.WinForms/Controls/SummaryEditor.cs rename to src/Controls/SummaryEditor.cs diff --git a/src/Directory.Build.props b/src/Directory.Build.props deleted file mode 100644 index d1a1c35..0000000 --- a/src/Directory.Build.props +++ /dev/null @@ -1,44 +0,0 @@ - - - - - 12.0 - net472 - enable - annotations - False - True - True - $(NoWarn);1591 - $(MSBuildThisFileDirectory)..\icon.ico - ..\app.manifest - es;el;fr;it;ja;nl;pt-BR;pt-PT;ro;ru;tr;zh;zh-Hant - - - Zero Install Publishing Tools - Copyright Bastian Eicher et al. - https://github.com/0install/0publish-win - - - 1.0.0-pre - - - 2.18.3 - 0.8.2 - 2.25.7 - - - - - - - - - - - - - - - - diff --git a/src/Publish.WinForms/InstallerCapture.cs b/src/InstallerCapture.cs similarity index 100% rename from src/Publish.WinForms/InstallerCapture.cs rename to src/InstallerCapture.cs diff --git a/src/Publish.WinForms/MainForm.Designer.cs b/src/MainForm.Designer.cs similarity index 100% rename from src/Publish.WinForms/MainForm.Designer.cs rename to src/MainForm.Designer.cs diff --git a/src/Publish.WinForms/MainForm.cs b/src/MainForm.cs similarity index 100% rename from src/Publish.WinForms/MainForm.cs rename to src/MainForm.cs diff --git a/src/Publish.WinForms/MainForm.resx b/src/MainForm.resx similarity index 100% rename from src/Publish.WinForms/MainForm.resx rename to src/MainForm.resx diff --git a/src/Publish.WinForms/MassSignForm.Designer.cs b/src/MassSignForm.Designer.cs similarity index 100% rename from src/Publish.WinForms/MassSignForm.Designer.cs rename to src/MassSignForm.Designer.cs diff --git a/src/Publish.WinForms/MassSignForm.cs b/src/MassSignForm.cs similarity index 100% rename from src/Publish.WinForms/MassSignForm.cs rename to src/MassSignForm.cs diff --git a/src/Publish.WinForms/MassSignForm.resx b/src/MassSignForm.resx similarity index 100% rename from src/Publish.WinForms/MassSignForm.resx rename to src/MassSignForm.resx diff --git a/src/Publish.WinForms/NewFeedWizard.Designer.cs b/src/NewFeedWizard.Designer.cs similarity index 100% rename from src/Publish.WinForms/NewFeedWizard.Designer.cs rename to src/NewFeedWizard.Designer.cs diff --git a/src/Publish.WinForms/NewFeedWizard.cs b/src/NewFeedWizard.cs similarity index 100% rename from src/Publish.WinForms/NewFeedWizard.cs rename to src/NewFeedWizard.cs diff --git a/src/Publish.WinForms/NewFeedWizard.resx b/src/NewFeedWizard.resx similarity index 100% rename from src/Publish.WinForms/NewFeedWizard.resx rename to src/NewFeedWizard.resx diff --git a/src/Publish.WinForms/Program.cs b/src/Program.cs similarity index 100% rename from src/Publish.WinForms/Program.cs rename to src/Program.cs diff --git a/src/Publish.WinForms/Properties/ImageResources.Designer.cs b/src/Properties/ImageResources.Designer.cs similarity index 100% rename from src/Publish.WinForms/Properties/ImageResources.Designer.cs rename to src/Properties/ImageResources.Designer.cs diff --git a/src/Publish.WinForms/Properties/ImageResources.resx b/src/Properties/ImageResources.resx similarity index 100% rename from src/Publish.WinForms/Properties/ImageResources.resx rename to src/Properties/ImageResources.resx diff --git a/src/Publish.WinForms/Properties/Resources.Designer.cs b/src/Properties/Resources.Designer.cs similarity index 100% rename from src/Publish.WinForms/Properties/Resources.Designer.cs rename to src/Properties/Resources.Designer.cs diff --git a/src/Publish.WinForms/Properties/Resources.cs.resx b/src/Properties/Resources.cs.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.cs.resx rename to src/Properties/Resources.cs.resx diff --git a/src/Publish.WinForms/Properties/Resources.de.resx b/src/Properties/Resources.de.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.de.resx rename to src/Properties/Resources.de.resx diff --git a/src/Publish.WinForms/Properties/Resources.el.resx b/src/Properties/Resources.el.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.el.resx rename to src/Properties/Resources.el.resx diff --git a/src/Publish.WinForms/Properties/Resources.es.resx b/src/Properties/Resources.es.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.es.resx rename to src/Properties/Resources.es.resx diff --git a/src/Publish.WinForms/Properties/Resources.fr.resx b/src/Properties/Resources.fr.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.fr.resx rename to src/Properties/Resources.fr.resx diff --git a/src/Publish.WinForms/Properties/Resources.id.resx b/src/Properties/Resources.id.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.id.resx rename to src/Properties/Resources.id.resx diff --git a/src/Publish.WinForms/Properties/Resources.it.resx b/src/Properties/Resources.it.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.it.resx rename to src/Properties/Resources.it.resx diff --git a/src/Publish.WinForms/Properties/Resources.ja.resx b/src/Properties/Resources.ja.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.ja.resx rename to src/Properties/Resources.ja.resx diff --git a/src/Publish.WinForms/Properties/Resources.ko.resx b/src/Properties/Resources.ko.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.ko.resx rename to src/Properties/Resources.ko.resx diff --git a/src/Publish.WinForms/Properties/Resources.nl.resx b/src/Properties/Resources.nl.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.nl.resx rename to src/Properties/Resources.nl.resx diff --git a/src/Publish.WinForms/Properties/Resources.pl.resx b/src/Properties/Resources.pl.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.pl.resx rename to src/Properties/Resources.pl.resx diff --git a/src/Publish.WinForms/Properties/Resources.pt-BR.resx b/src/Properties/Resources.pt-BR.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.pt-BR.resx rename to src/Properties/Resources.pt-BR.resx diff --git a/src/Publish.WinForms/Properties/Resources.pt-PT.resx b/src/Properties/Resources.pt-PT.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.pt-PT.resx rename to src/Properties/Resources.pt-PT.resx diff --git a/src/Publish.WinForms/Properties/Resources.resx b/src/Properties/Resources.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.resx rename to src/Properties/Resources.resx diff --git a/src/Publish.WinForms/Properties/Resources.ro.resx b/src/Properties/Resources.ro.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.ro.resx rename to src/Properties/Resources.ro.resx diff --git a/src/Publish.WinForms/Properties/Resources.ru.resx b/src/Properties/Resources.ru.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.ru.resx rename to src/Properties/Resources.ru.resx diff --git a/src/Publish.WinForms/Properties/Resources.tr.resx b/src/Properties/Resources.tr.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.tr.resx rename to src/Properties/Resources.tr.resx diff --git a/src/Publish.WinForms/Properties/Resources.zh.resx b/src/Properties/Resources.zh.resx similarity index 100% rename from src/Publish.WinForms/Properties/Resources.zh.resx rename to src/Properties/Resources.zh.resx diff --git a/src/Publish.Cli/BootstrapCommand.cs b/src/Publish.Cli/BootstrapCommand.cs deleted file mode 100644 index 0e6946b..0000000 --- a/src/Publish.Cli/BootstrapCommand.cs +++ /dev/null @@ -1,228 +0,0 @@ -// Copyright Bastian Eicher et al. -// Licensed under the GNU Lesser Public License - -using System.ComponentModel; -using System.Globalization; -using IniParser; -using Mono.Cecil; -using NanoByte.Common.Collections; -using NanoByte.Common.Net; -using NanoByte.Common.Streams; -using Vestris.ResourceLib; -using ZeroInstall.Client; -using ZeroInstall.DesktopIntegration; -using ZeroInstall.Store.Configuration; -using ZeroInstall.Store.Feeds; -using ZeroInstall.Store.Icons; -using ZeroInstall.Store.Trust; - -namespace ZeroInstall.Publish.Cli; - -/// -/// Builds a customized Zero Install Bootstrapper for running or integrating a specific feed. -/// -internal class BootstrapCommand : ICommand -{ - private readonly ITaskHandler _handler; - private readonly IFeedCache _feedCache = FeedCaches.Default(OpenPgp.Verifying()); - private readonly IIconStore _iconStore; - - /// The feed URI of the target application to bootstrap. - private readonly FeedUri _feedUri; - - /// The path of the bootstrap EXE to build. - private readonly string _outputFile; - - /// - /// Parses command-line arguments. - /// - /// The command-line arguments to be parsed. - /// A callback object used when the the user needs to be asked questions or informed about download and IO tasks. - /// The user asked to see help information, version information, etc.. - /// contains unknown options. - public BootstrapCommand(IEnumerable args, ITaskHandler handler) - { - _handler = handler; - _iconStore = IconStores.Cache(Config.LoadSafe(), handler); - - switch (BuildOptions().Parse(args)) - { - case [var feedUri, var outputFile]: - _feedUri = new(feedUri); - _outputFile = Path.GetFullPath(outputFile); - break; - - default: - throw new OptionException(string.Format(Resources.MissingArguments, "0publish bootstrap --help"), ""); - } - } - - #region Options - /// Overwrite existing files. - private bool _force; - - /// Additional command-line arguments to pass to the application launched by the feed. - private string? _appArgs; - - /// Command-line arguments to pass to 0install integrate. null to not call '0install integrate' at all. - private string? _integrateArgs; - - /// The URI of the catalog to replace the default catalog. Only applies if Zero Install is not already deployed. - private FeedUri? _catalogUri; - - /// Offer the user to choose a custom path for storing implementations. - private bool _customizableStorePath; - - /// Show the estimated disk space required (in bytes). Only works when is true. - private int? _estimatedRequiredSpace; - - /// Set Zero Install configuration options. Only overrides existing config files if Zero Install is not already deployed. - private readonly Config _config = new(); - - /// A directory containing additional content to be embedded in the bootstrapper. - private DirectoryInfo? _contentDir; - - /// Path or URI to the boostrap template executable. - private Uri _template = new("https://get.0install.net/zero-install.exe"); - - private OptionSet BuildOptions() - { - var options = new OptionSet - { - {"f|force", () => Resources.OptionForce, _ => _force = true}, - {"a|app-args=", () => Resources.OptionAppArgs, x => _appArgs = x}, - {"i|integrate-args=", () => Resources.OptionIntegrateArgs, x => _integrateArgs = x}, - {"catalog-uri=", () => Resources.OptionCatalogUri, (FeedUri x) => _catalogUri = x}, - {"customizable-store-path", () => Resources.OptionCustomizableStorePath, _ => _customizableStorePath = true}, - {"estimated-required-space=", () => Resources.OptionEstimatedRequiredSpace, (int x) => - { - _customizableStorePath = true; - _estimatedRequiredSpace = x; - } - }, - {"c|config==", () => Resources.OptionConfig, (key, value) => _config.SetOption(key, value) }, - {"content=", () => Resources.OptionContent, x => _contentDir = new(x)}, - {"template=", () => Resources.OptionTemplate, (Uri x) => _template = x} - }; - - options.Add("h|help|?", () => Resources.OptionHelp, _ => - { - Console.WriteLine(Resources.DescriptionBootstrap); - Console.WriteLine(); - Console.WriteLine(Resources.Usage); - Console.WriteLine(@"0publish bootstrap [OPTIONS] FEED-URI OUTPUT-FILE"); - Console.WriteLine(); - Console.WriteLine(Resources.Options); - options.WriteOptionDescriptions(Console.Out); - - // Don't handle any of the other arguments - throw new OperationCanceledException(); - }); - - return options; - } - #endregion - - /// - public void Execute() - { - DownloadFeed(); - var feed = _feedCache.GetFeed(_feedUri) ?? throw new FileNotFoundException(); - string? keyFingerprint = _feedCache.GetSignatures(_feedUri).OfType().FirstOrDefault()?.FormatFingerprint(); - - string? icon = feed.Icons.GetIcon(Icon.MimeTypeIco)?.To(_iconStore.GetFresh); - string? splashScreen = feed.SplashScreens.GetIcon(Icon.MimeTypePng)?.To(_iconStore.GetFresh); - - InitializeFromTemplate(); - - _handler.RunTask(new ActionTask(Resources.BuildingBootstrapper, () => - { - using var bootstrapConfig = BuildBootstrapConfig(feed, keyFingerprint, customSplashScreen: splashScreen != null); - ModifyEmbeddedResources(bootstrapConfig, splashScreen); - if (icon != null) ReplaceIcon(icon); - })); - } - - private void DownloadFeed() - => _handler.RunTask(new ActionTask( - string.Format(Resources.Downloading, _feedUri.ToStringRfc()), - () => ZeroInstallClient.Detect.SelectAsync(_feedUri, refresh: true).Wait())); - - private Stream BuildBootstrapConfig(Feed feed, string? keyFingerprint, bool customSplashScreen) - { - var iniData = _config.ToIniData(); - iniData.Sections.Add(new("bootstrap") - { - Keys = - { - ["key_fingerprint"] = keyFingerprint ?? "", - ["app_uri"] = _feedUri.ToStringRfc(), - ["app_name"] = feed.Name, - ["app_args"] = _appArgs ?? "", - ["integrate_args"] = _integrateArgs ?? "", - ["catalog_uri"] = _catalogUri?.ToStringRfc() ?? "", - ["show_app_name_below_splash_screen"] = (!customSplashScreen).ToString().ToLowerInvariant(), - ["customizable_store_path"] = _customizableStorePath.ToString().ToLowerInvariant(), - ["estimated_required_space"] = _estimatedRequiredSpace?.ToString(CultureInfo.InvariantCulture) ?? "" - } - }); - - var stream = new MemoryStream(); - using (var writer = new StreamWriter(stream, EncodingUtils.Utf8, bufferSize: 1024, leaveOpen: true)) - new StreamIniDataParser().WriteData(writer, iniData); - stream.Position = 0; - return stream; - } - - private void InitializeFromTemplate() - { - if (File.Exists(_outputFile) && !_force) throw new IOException(string.Format(Resources.FileAlreadyExists, _outputFile)); - - if (_template.IsFile) - _handler.RunTask(new ReadFile(_template.LocalPath, stream => stream.CopyToFile(_outputFile))); - else - _handler.RunTask(new DownloadFile(_template, _outputFile)); - } - - private void ModifyEmbeddedResources(Stream bootstrapConfig, string? splashScreenPath) - { - using var assembly = AssemblyDefinition.ReadAssembly(_outputFile, new() {ReadWrite = true}); - assembly.Name.Name = Path.GetFileNameWithoutExtension(_outputFile); - - var resources = assembly.MainModule.Resources; - - void Replace(string name, Stream stream) - { - resources.RemoveAll(x => x.Name == name); - resources.Add(new EmbeddedResource(name, ManifestResourceAttributes.Public, stream)); - } - - Replace("ZeroInstall.BootstrapConfig.ini", bootstrapConfig); - - using var splashScreen = splashScreenPath?.To(File.OpenRead); - if (splashScreen != null) Replace("ZeroInstall.SplashScreen.png", splashScreen); - - _contentDir?.Walk( - fileAction: file => resources.Add(new EmbeddedResource( - name: "ZeroInstall.content." + WebUtility.UrlDecode(file.RelativeTo(_contentDir).Replace(Path.DirectorySeparatorChar, '.')), - ManifestResourceAttributes.Public, - file.Open(FileMode.Open, FileAccess.Read, FileShare.Read)))); - - assembly.Write(); - } - - private void ReplaceIcon(string path) - { - try - { - new IconDirectoryResource(new(path)).SaveTo(_outputFile); - } - #region Error handling - catch (Win32Exception ex) - { - // Wrap exception since only certain exception types are allowed - throw new IOException(ex.Message, ex); - } - #endregion - } -} diff --git a/src/Publish.Cli/CaptureCommand.cs b/src/Publish.Cli/CaptureCommand.cs deleted file mode 100644 index 9b0b112..0000000 --- a/src/Publish.Cli/CaptureCommand.cs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright Bastian Eicher et al. -// Licensed under the GNU Lesser Public License - -using ZeroInstall.Publish.Capture; - -namespace ZeroInstall.Publish.Cli; - -/// -/// Captures snapshots of the system state and compares them to generate a feed. -/// -internal class CaptureCommand : ICommand -{ - private readonly ITaskHandler _handler; - - private readonly List _additionalArgs; - - /// - /// Parses command-line arguments. - /// - /// The command-line arguments to be parsed. - /// A callback object used when the the user needs to be asked questions or informed about download and IO tasks. - /// The user asked to see help information, version information, etc.. - /// contains unknown options. - public CaptureCommand(IEnumerable args, ITaskHandler handler) - { - _handler = handler; - _additionalArgs = BuildOptions().Parse(args); - } - - #region Options - /// Overwrite existing files. - private bool _force; - - /// The directory the application to be captured is installed in. null to auto-detect. - private string? _installationDirectory; - - /// The relative path to the main EXE of the application to be captured. null to auto-detect. - private string? _mainExe; - - /// The path of the ZIP file to create from the installation directory. null to create no ZIP archive. - private string? _zipFile; - - private OptionSet BuildOptions() - { - var options = new OptionSet - { - {"f|force", () => Resources.OptionForce, _ => _force = true}, - { - "installation-dir=", () => Resources.OptionInstallationDirectory, value => - { - try - { - _installationDirectory = Path.GetFullPath(value); - } - #region Error handling - catch (Exception ex) when (ex is ArgumentException or NotSupportedException) - { - // Wrap exception since only certain exception types are allowed - throw new OptionException(ex.Message, "installation-dir"); - } - #endregion - } - }, - {"main-exe=", () => Resources.OptionMainExe, value => _mainExe = value}, - {"collect-files=", () => Resources.OptionCollectFiles, value => _zipFile = value} - }; - - options.Add("h|help|?", () => Resources.OptionHelp, _ => - { - Console.WriteLine(Resources.DescriptionCapture); - Console.WriteLine(); - Console.WriteLine(Resources.Usage); - Console.WriteLine(@"0publish capture start SNAPSHOT-FILE [--force]"); - Console.WriteLine(@"0publish capture finish SNAPSHOT-FILE FEED-FILE [--force]"); - Console.WriteLine(); - Console.WriteLine(Resources.Options); - options.WriteOptionDescriptions(Console.Out); - - // Don't handle any of the other arguments - throw new OperationCanceledException(); - }); - - return options; - } - #endregion - - /// - public void Execute() - { - switch (_additionalArgs) - { - case ["start", var snapshotFile]: - Start(snapshotFile); - break; - case ["finish", var snapshotFile, var feedFile]: - Finish(snapshotFile, feedFile); - break; - default: - throw new OptionException(string.Format(Resources.MissingArguments, "0publish capture --help"), ""); - } - } - - private void Start(string snapshotFile) - { - HandleFileAlreadyExists(snapshotFile); - - var session = CaptureSession.Start(new FeedBuilder()); - session.Save(snapshotFile); - } - - private void Finish(string snapshotFile, string feedFile) - { - HandleFileAlreadyExists(feedFile); - - var feedBuilder = new FeedBuilder(); - var session = CaptureSession.Load(snapshotFile, feedBuilder); - - session.InstallationDir = _installationDirectory; - try - { - session.Diff(_handler); - } - #region Error handling - catch (InvalidOperationException ex) - { - // Wrap exception since only certain exception types are allowed - throw new InvalidDataException(ex.Message, ex); - } - #endregion - - feedBuilder.MainCandidate = string.IsNullOrEmpty(_mainExe) - ? feedBuilder.Candidates.FirstOrDefault() - : feedBuilder.Candidates.FirstOrDefault(x => StringUtils.EqualsIgnoreCase(x.RelativePath.ToNativePath(), _mainExe)); - session.Finish(); - - if (!string.IsNullOrEmpty(_zipFile)) - { - HandleFileAlreadyExists(_zipFile); - - var relativeUri = new Uri(Path.GetFullPath(feedFile)).MakeRelativeUri(new Uri(Path.GetFullPath(_zipFile!))); - session.CollectFiles(_zipFile, relativeUri, _handler); - Log.Warn("If you wish to upload this feed and ZIP archive, make sure to turn the 's relative href into an absolute one."); - } - - feedBuilder.Build().Save(feedFile); - } - - private void HandleFileAlreadyExists(string path) - { - if (File.Exists(path) && !_force) - throw new IOException(string.Format(Resources.FileAlreadyExists, Path.GetFullPath(path))); - } -} diff --git a/src/Publish.Cli/ICommand.cs b/src/Publish.Cli/ICommand.cs deleted file mode 100644 index 5b3dc64..0000000 --- a/src/Publish.Cli/ICommand.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright Bastian Eicher et al. -// Licensed under the GNU Lesser Public License - -using ZeroInstall.Store.Implementations; - -namespace ZeroInstall.Publish.Cli; - -public interface ICommand -{ - /// - /// Executes the commands specified by the command-line arguments. - /// - /// The user canceled the task. - /// The specified feed file paths were invalid. - /// A file could not be downloaded from the internet. - /// A feed file is damaged. - /// A feed file could not be found. - /// A file could not be read or written or the GnuPG could not be launched or the feed file could not be read or written. - /// Read or write access to a feed file or the catalog file is not permitted. - /// An existing digest does not match the newly calculated one. - /// An OpenPGP key could not be found. - /// A MIME type doesn't belong to a known and supported archive type. - void Execute(); -} diff --git a/src/Publish.Cli/Program.cs b/src/Publish.Cli/Program.cs deleted file mode 100644 index 1a7ec2b..0000000 --- a/src/Publish.Cli/Program.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright Bastian Eicher et al. -// Licensed under the GNU Lesser Public License - -using System.Security; -using NanoByte.Common.Net; -using ZeroInstall.Publish; -using ZeroInstall.Publish.Cli; -using ZeroInstall.Store.Implementations; -using ZeroInstall.Store.Trust; - -ProcessUtils.SanitizeEnvironmentVariables(); -NetUtils.ApplyProxy(); -ServicePointManager.DefaultConnectionLimit = 16; - -using var handler = new AnsiCliTaskHandler(); - -try -{ - // Automatically show help for missing args - if (args.Length == 0) args = ["--help"]; - - ICommand command = args switch - { - ["capture", ..] => new CaptureCommand(args.Skip(1), handler), - ["bootstrap", ..] => new BootstrapCommand(args.Skip(1), handler), - _ => new PublishCommand(args, handler) - }; - command.Execute(); - return (int)ExitCode.OK; -} -#region Error handling -catch (OperationCanceledException) -{ - return (int)ExitCode.UserCanceled; -} -catch (Exception ex) when (ex is ArgumentException or OptionException or KeyNotFoundException or WrongPassphraseException) -{ - handler.Error(ex); - return (int)ExitCode.InvalidArguments; -} -catch (WebException ex) -{ - handler.Error(ex); - return (int)ExitCode.WebError; -} -catch (InvalidDataException ex) -{ - handler.Error(ex); - return (int)ExitCode.InvalidData; -} -catch (IOException ex) -{ - handler.Error(ex); - return (int)ExitCode.IOError; -} -catch (Exception ex) when (ex is UnauthorizedAccessException or SecurityException) -{ - handler.Error(ex); - return (int)ExitCode.AccessDenied; -} -catch (DigestMismatchException ex) -{ - Log.Info(ex.LongMessage); - handler.Error(ex); - return (int)ExitCode.DigestMismatch; -} -catch (NotSupportedException ex) -{ - handler.Error(ex); - return (int)ExitCode.NotSupported; -} -#endregion diff --git a/src/Publish.Cli/Properties/Resources.Designer.cs b/src/Publish.Cli/Properties/Resources.Designer.cs deleted file mode 100644 index 883a8cb..0000000 --- a/src/Publish.Cli/Properties/Resources.Designer.cs +++ /dev/null @@ -1,361 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ZeroInstall.Publish.Cli.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ZeroInstall.Publish.Cli.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to Please enter the GnuPG passphrase for {0}:. - /// - internal static string AskForPassphrase { - get { - return ResourceManager.GetString("AskForPassphrase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Building bootstrapper. - /// - internal static string BuildingBootstrapper { - get { - return ResourceManager.GetString("BuildingBootstrapper", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Builds a customized Zero Install Bootstrapper for running or integrating a specific feed.. - /// - internal static string DescriptionBootstrap { - get { - return ResourceManager.GetString("DescriptionBootstrap", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Captures snapshots of the system state and compares them to generate a feed.. - /// - internal static string DescriptionCapture { - get { - return ResourceManager.GetString("DescriptionCapture", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Downloading {0}. - /// - internal static string Downloading { - get { - return ResourceManager.GetString("Downloading", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The feed does not have the correct format.. - /// - internal static string FeedNotValid { - get { - return ResourceManager.GetString("FeedNotValid", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The file '{0}' already exists. Use --force to overwrite.. - /// - internal static string FileAlreadyExists { - get { - return ResourceManager.GetString("FileAlreadyExists", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to This program comes with ABSOLUTELY NO WARRANTY, to the extent permitted by law. - ///You may redistribute copies of this program under the terms of the GNU Lesser General Public License.. - /// - internal static string LicenseInfo { - get { - return ResourceManager.GetString("LicenseInfo", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Missing arguments. Try {0}. - /// - internal static string MissingArguments { - get { - return ResourceManager.GetString("MissingArguments", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Unable to find any matching feed files.. - /// - internal static string NoFeedFilesFound { - get { - return ResourceManager.GetString("NoFeedFilesFound", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Download missing archives, calculate manifest digests, etc... - /// - internal static string OptionAddMissing { - get { - return ResourceManager.GetString("OptionAddMissing", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Additional command-line {ARGUMENTS} to pass to the application launched by the feed.. - /// - internal static string OptionAppArgs { - get { - return ResourceManager.GetString("OptionAppArgs", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Combine all specified feeds into a single catalog {FILE}.. - /// - internal static string OptionCatalog { - get { - return ResourceManager.GetString("OptionCatalog", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The {URI} of the catalog to replace the default catalog. Only applies if Zero Install is not already deployed.. - /// - internal static string OptionCatalogUri { - get { - return ResourceManager.GetString("OptionCatalogUri", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The {PATH} of the ZIP file to create from the installation directory. Leave unset to create no ZIP archive.. - /// - internal static string OptionCollectFiles { - get { - return ResourceManager.GetString("OptionCollectFiles", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Set a Zero Install configuration {0:OPTION} to a specific {1:VALUE}. Only overrides existing config files if Zero Install is not already deployed.. - /// - internal static string OptionConfig { - get { - return ResourceManager.GetString("OptionConfig", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {PATH} to a directory containing additional content to be embedded in the bootstrapper. You can generate such a directory using '0install export'.. - /// - internal static string OptionContent { - get { - return ResourceManager.GetString("OptionContent", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Offer the user to choose a custom path for storing implementations.. - /// - internal static string OptionCustomizableStorePath { - get { - return ResourceManager.GetString("OptionCustomizableStorePath", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Show the estimated disk {SPACE} required (in bytes). Implicitly sets --customizable-store-path too.. - /// - internal static string OptionEstimatedRequiredSpace { - get { - return ResourceManager.GetString("OptionEstimatedRequiredSpace", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Overwrite existing files.. - /// - internal static string OptionForce { - get { - return ResourceManager.GetString("OptionForce", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Use {PASS} to unlock the GnuPG secret key.. - /// - internal static string OptionGnuPGPassphrase { - get { - return ResourceManager.GetString("OptionGnuPGPassphrase", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Show the built-in help text.. - /// - internal static string OptionHelp { - get { - return ResourceManager.GetString("OptionHelp", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The {PATH} of the directory the application to be captured is installed in. Leave unset to auto-detect.. - /// - internal static string OptionInstallationDirectory { - get { - return ResourceManager.GetString("OptionInstallationDirectory", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Command-line {ARGUMENTS} to pass to '0install integrate'. Leave unset to not call '0install integrate' at all.. - /// - internal static string OptionIntegrateArgs { - get { - return ResourceManager.GetString("OptionIntegrateArgs", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Key to use for signing (if you have more than one, or if you want to resign with a different key).. - /// - internal static string OptionKey { - get { - return ResourceManager.GetString("OptionKey", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The relative {PATH} to the main EXE of the application to be captured. Leave unset to auto-detect.. - /// - internal static string OptionMainExe { - get { - return ResourceManager.GetString("OptionMainExe", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Options:. - /// - internal static string Options { - get { - return ResourceManager.GetString("Options", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {URI} or path to the boostrap template executable. Leave unset to download from default location.. - /// - internal static string OptionTemplate { - get { - return ResourceManager.GetString("OptionTemplate", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Remove any existing signatures.. - /// - internal static string OptionUnsign { - get { - return ResourceManager.GetString("OptionUnsign", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Display version information.. - /// - internal static string OptionVersion { - get { - return ResourceManager.GetString("OptionVersion", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Add an XML signature block. (All remote feeds must be signed.). - /// - internal static string OptionXmlSign { - get { - return ResourceManager.GetString("OptionXmlSign", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Unknown operation mode. - ///Try {0}. - /// - internal static string UnknownMode { - get { - return ResourceManager.GetString("UnknownMode", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Usage:. - /// - internal static string Usage { - get { - return ResourceManager.GetString("Usage", resourceCulture); - } - } - } -} diff --git a/src/Publish.Cli/Properties/Resources.cs.resx b/src/Publish.Cli/Properties/Resources.cs.resx deleted file mode 100644 index 69e2c21..0000000 --- a/src/Publish.Cli/Properties/Resources.cs.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zadejte prosím přístupovou frázi GnuPG pro {0}: - Automatically translated. - - - Sestavení bootstrapperu - Automatically translated. - - - Sestaví přizpůsobený zaváděcí program Zero Install pro spuštění nebo integraci konkrétního kanálu. - Automatically translated. - - - Snímá snímky stavu systému a porovnává je pro vytvoření kanálu. - Automatically translated. - - - {0} se stahuje - Manually overriden. - - - Zdroj nemá správný formát. - Automatically translated. - - - Soubor '{0}' již existuje. Pro přepsání použijte --force. - Automatically translated. - - - Na tento program se v rozsahu povoleném zákonem nevztahuje ABSOLUTNĚ ŽÁDNÁ ZÁRUKA. -Kopie tohoto programu můžete šířit za podmínek licence GNU Lesser General Public License. - Automatically translated. - - - Chybějící argumenty. Zkuste {0} - Automatically translated. - - - Nelze nalézt žádné odpovídající soubory feedu. - Automatically translated. - - - Stahování chybějících archivů, výpočet manifestů atd.. - Automatically translated. - - - Další příkazový řádek {ARGUMENTS} pro předání aplikaci spouštěné kanálem. - Automatically translated. - - - Sloučení všech zadaných kanálů do jednoho katalogu {FILE}. - Automatically translated. - - - Katalog {URI}, který nahradí výchozí katalog. Platí pouze v případě, že nulová instalace ještě není nasazena. - Automatically translated. - - - Adresa {PATH} souboru ZIP, který se vytvoří z instalačního adresáře. Ponechte hodnotu nenastavenou, pokud nechcete vytvořit žádný archiv ZIP. - Automatically translated. - - - Nastavení konfigurace nulové instalace {0:OPTION} na konkrétní {1:VALUE}. Přepisuje pouze existující konfigurační soubory, pokud ještě není Zero Install nasazen. - Automatically translated. - - - {PATH} do adresáře obsahujícího další obsah, který má být vložen do bootstrapperu. Takový adresář můžete vygenerovat pomocí příkazu '0install export'. - Automatically translated. - - - Nabídněte uživateli možnost zvolit si vlastní cestu pro ukládání implementací. - Automatically translated. - - - Zobrazení odhadované potřeby disku {SPACE} (v bytech). Implicitně nastavuje také --customizable-store-path. - Automatically translated. - - - Přepis stávajících souborů. - Automatically translated. - - - K odemknutí tajného klíče GnuPG použijte stránku {PASS}. - Automatically translated. - - - Zobrazení vestavěného textu nápovědy. - Automatically translated. - - - Adresa {PATH} adresáře, ve kterém je nainstalována aplikace, která má být zachycena. Pro automatickou detekci ponechte hodnotu nenastavenou. - Automatically translated. - - - Příkazový řádek {ARGUMENTS}, který se předává '0install integrate'. Ponechte hodnotu unset, aby se příkaz '0install integrate' vůbec nevolal. - Automatically translated. - - - Klíč, který se používá k podepisování (pokud jich máte více nebo pokud chcete rezignovat pomocí jiného klíče). - Automatically translated. - - - Relativní {PATH} k hlavnímu EXE aplikace, která má být zachycena. Pro automatickou detekci ponechte hodnotu nenastavenou. - Automatically translated. - - - Možnosti: - Automatically translated. - - - {URI} nebo cesta ke spustitelnému souboru šablony boostrap. Pro stahování z výchozího umístění ponechte hodnotu nenastavenou. - Automatically translated. - - - Odstranění všech existujících podpisů. - Automatically translated. - - - Zobrazení informací o verzi. - Automatically translated. - - - Přidání bloku podpisu XML. (Všechny vzdálené kanály musí být podepsány.) - Automatically translated. - - - Neznámý provozní režim. -Zkuste {0} - Automatically translated. - - - Použití: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.de.resx b/src/Publish.Cli/Properties/Resources.de.resx deleted file mode 100644 index 5121224..0000000 --- a/src/Publish.Cli/Properties/Resources.de.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bitte geben Sie die GnuPG Passphrase für {0} ein: - Manually overriden. - - - Bootstrapper bauen - Manually overriden. - - - Erstellt einen angepassten Zero Install Bootstrapper zum Ausführen oder Integrieren einer bestimmten Feed. - Manually overriden. - - - Erfasst Schnappschüsse des Systemzustands und vergleicht sie, um eine Feed zu erstellen. - Manually overriden. - - - {0} wird heruntergeladen - Manually overriden. - - - Der Feed hat nicht das richtige Format - Manually overriden. - - - Die Datei '{0}' existiert bereits. Verwenden Sie --force zum Überschreiben. - Manually overriden. - - - Für dieses Programm gibt es ABSOLUT KEINE GARANTIEN, soweit dies gesetzlich zulässig ist. -Sie dürfen unter den Bedingungen der GNU Lesser General Public License Kopien dieses Programmes weitergeben. - Manually overriden. - - - Fehlende Argumente. Probieren Sie {0} - Manually overriden. - - - Konnte keine passenden Feed-Dateien finden. - Manually overriden. - - - Lade fehlende Archive runter, berechne Manifest Digests, etc.. - Manually overriden. - - - Zusätzliche Befehlszeilen {ARGUMENTE} zur Übergabe an die von Feed gestartete Anwendung. - Manually overriden. - - - Alle angegebenen Feeds in einer einzelnen Katalog {DATEI} kombinieren. - Manually overriden. - - - Die {URI} des Katalogs, der den Standardkatalog ersetzen soll. Wird nur wirksam, wenn Zero Install nicht bereits deployt wurde. - Manually overriden. - - - Die {PATH} der ZIP-Datei, die aus dem Installationsverzeichnis erstellt werden soll. Lassen Sie die Option leer, um kein ZIP-Archiv zu erstellen. - Manually overriden. - - - Setzen Sie eine Zero Install Konfiguration {0:OPTION} auf einen bestimmten {1:WERT}. Überschreibt bereits vorhandene Konfigurationsdateien nur, wenn Zero Install nicht bereits deployt wurde. - Manually overriden. - - - {PATH} zu ein Verzeichnis mit zusätzlichen Inhalten, die in den Bootstrapper eingebettet werden sollen. Sie können ein solches Verzeichnis mit '0install export' erzeugen. - Manually overriden. - - - Bietet dem Benutzer an, einen benutzerdefinierten Pfad für die Speicherung von Implementierungen zu wählen. - Manually overriden. - - - Zeigt den geschätzten benötigte {SPEICHERPLATZ} an (in Bytes). Setzt implizit auch --customizable-store-path. - Manually overriden. - - - Überschreibt vorhandene Dateien. - Manually overriden. - - - Verwende {PASS} um den privaten GnuPG Schlüssel freizuschalten. - Manually overriden. - - - Zeigt den eingebauten Hilfe-Text an. - Manually overriden. - - - Der {PATH} des Verzeichnisses, in dem die zu erfassende Anwendung installiert ist. Lassen Sie den Wert ungesetzt, um eine automatische Erkennung durchzuführen. - Manually overriden. - - - Befehlszeilen {ARGUMENTE} zur Übergabe an '0install integrate'. Lassen Sie den Wert ungesetzt, um '0install integrate' überhaupt nicht aufzurufen. - Manually overriden. - - - Schlüssel der zum Signieren verwenden werden soll (falls Sie mehrere haben oder falls Sie mit einem anderen Schlüssel resignieren möchten). - Manually overriden. - - - Die relative {PATH} zu der Haupt-EXE der zu erfassenden Anwendung. Lassen Sie den Wert ungesetzt, um eine automatische Erkennung durchzuführen. - Manually overriden. - - - Optionen: - Manually overriden. - - - {URI} oder Pfad zum Boostrap-Template. Lassen Sie das Feld leer, um das Template vom Standardort herunterzuladen. - Manually overriden. - - - Entferne alle bestehenden Signaturen. - Manually overriden. - - - Zeigt die Versionsinformationen an. - Manually overriden. - - - Füge einen XML Signaturblock hinzu. (Alle Remote-Feeds müssen signiert sein.) - Manually overriden. - - - Unbekannter Betriebsmodus. -Probieren Sie {0} - Manually overriden. - - - Verwendung: - Manually overriden. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.el.resx b/src/Publish.Cli/Properties/Resources.el.resx deleted file mode 100644 index 67ecd0d..0000000 --- a/src/Publish.Cli/Properties/Resources.el.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Παρακαλούμε εισάγετε την συνθηματική φράση για το GnuPG {0}: - Manually overriden. - - - Δημιουργία bootstrapper - Automatically translated. - - - Κατασκευάζει ένα προσαρμοσμένο Zero Install Bootstrapper για την εκτέλεση ή την ενσωμάτωση μιας συγκεκριμένης τροφοδοσίας. - Automatically translated. - - - Καταγράφει στιγμιότυπα της κατάστασης του συστήματος και τα συγκρίνει για τη δημιουργία μιας τροφοδοσίας. - Automatically translated. - - - Λήψη {0} - Manually overriden. - - - Η τροφοδοσία δεν έχει τη σωστή μορφή. - Manually overriden. - - - Το αρχείο '{0}' υπάρχει ήδη. Χρησιμοποιήστε το --force για να το αντικαταστήσετε. - Automatically translated. - - - Το πρόγραμμα έρχεται με ΑΠΟΛΥΤΩΣ ΚΑΜΙΑ ΕΓΓΥΗΣΗ, στο βαθμό που επιτρέπεται από το νόμο. -Μπορείτε να αναδιανέμετε αντίγραφα του προγράμματος υπό τους όρους της GNU Lesser General Public License. - Manually overriden. - - - Λείπουν επιχειρήματα. Δοκιμάστε {0} - Manually overriden. - - - Αδυναμία εύρεσης των αρχείων που ταιριάζουν με τις τροφοδοσίες. - Manually overriden. - - - Λήψη αρχείων που λείπουν, υπολογισμος δηλωτικου, κλπ... - Manually overriden. - - - Πρόσθετη γραμμή εντολών {ARGUMENTS} για να περάσει στην εφαρμογή που ξεκινάει από την τροφοδοσία. - Automatically translated. - - - Συνδυάστε όλες τις καθορισμένες τροφοδοσίες σε ένα ενιαίο κατάλογο {ΑΡΧΕΙΟ}. - Manually overriden. - - - Το {URI} του καταλόγου για την αντικατάσταση του προεπιλεγμένου καταλόγου. Ισχύει μόνο εάν δεν έχει ήδη αναπτυχθεί το Zero Install. - Automatically translated. - - - Το {PATH} του αρχείου ZIP που θα δημιουργηθεί από τον κατάλογο εγκατάστασης. Αφήστε το unset για να μην δημιουργηθεί αρχείο ZIP. - Automatically translated. - - - Ορίστε μια διαμόρφωση Zero Install {0:OPTION} σε ένα συγκεκριμένο {1:VALUE}. Αντικαθιστά μόνο τα υπάρχοντα αρχεία ρυθμίσεων εάν το Zero Install δεν έχει ήδη αναπτυχθεί. - Automatically translated. - - - {PATH} σε έναν κατάλογο που περιέχει πρόσθετο περιεχόμενο που θα ενσωματωθεί στο bootstrapper. Μπορείτε να δημιουργήσετε έναν τέτοιο κατάλογο χρησιμοποιώντας το '0install export'. - Automatically translated. - - - Προσφέρει στο χρήστη τη δυνατότητα να επιλέξει μια προσαρμοσμένη διαδρομή για την αποθήκευση των υλοποιήσεων. - Automatically translated. - - - Εμφάνιση της εκτιμώμενης απαιτούμενης τιμής του δίσκου {SPACE} (σε bytes). Θέτει σιωπηρά και το --customizable-store-path. - Automatically translated. - - - Αντικατάσταση υφιστάμενων αρχείων. - Automatically translated. - - - Χρήση {PASS} για να ξεκλειδώσετε το μυστικό κλειδί του GnuPG. - Manually overriden. - - - Εμφάνιση του ενσωματωμένου κειμένου βοήθειας. - Manually overriden. - - - Το {PATH} του καταλόγου στον οποίο είναι εγκατεστημένη η εφαρμογή που πρόκειται να καταγραφεί. Αφήστε την επιλογή unset για αυτόματο εντοπισμό. - Automatically translated. - - - Γραμμή εντολών {ARGUMENTS} για να περάσετε στο '0install integrate'. Αφήστε unset για να μην καλέσετε καθόλου το '0install integrate'. - Automatically translated. - - - Κλειδί για την χρήση υπογραφής (αν έχετε περισσότερα από ενα, ή αν θέλετε παραίτησή με διαφορετικό κλειδί). - Manually overriden. - - - Το σχετικό {PATH} με το κύριο EXE της εφαρμογής που πρόκειται να καταγραφεί. Αφήστε την επιλογή unset για αυτόματο εντοπισμό. - Automatically translated. - - - Επιλογές: - Manually overriden. - - - {URI} ή διαδρομή προς το εκτελέσιμο πρότυπο boostrap. Αφήστε το unset για λήψη από την προεπιλεγμένη τοποθεσία. - Automatically translated. - - - Αφαιρέστε τυχόν υπάρχουσες υπογραφές. - Manually overriden. - - - Εμφάνιση πληροφοριών έκδοσης. - Manually overriden. - - - Προσθήκη μπλοκ υπογραφής XML. (Όλες οι απομακρυσμένες τροφοδοσίες πρέπει να υπογράφονται.) - Manually overriden. - - - Άγνωστος τυπος λειτουργίας -Δοκιμάστε {0} - Manually overriden. - - - Χρήση: - Manually overriden. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.es.resx b/src/Publish.Cli/Properties/Resources.es.resx deleted file mode 100644 index 622e4f0..0000000 --- a/src/Publish.Cli/Properties/Resources.es.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Introduzca la frase de contraseña GnuPG para {0}: - Automatically translated. - - - Construcción del bootstrapper - Automatically translated. - - - Construye un Bootstrapper Zero Install personalizado para ejecutar o integrar un feed específico. - Automatically translated. - - - Captura instantáneas del estado del sistema y las compara para generar un feed. - Automatically translated. - - - Descargando {0} - Manually overriden. - - - El feed no tiene el formato correcto. - Automatically translated. - - - El fichero '{0}' ya existe. Utilice --force para sobrescribirlo. - Automatically translated. - - - Este programa no incluye ABSOLUTAMENTE NINGUNA GARANTÍA, en la medida permitida por la ley. -Puede redistribuir copias de este programa bajo los términos de la Licencia Pública General Reducida GNU. - Automatically translated. - - - Faltan argumentos. Pruebe {0} - Automatically translated. - - - No se puede encontrar ningún archivo de alimentación coincidente. - Automatically translated. - - - Descargar archivos perdidos, calcular compendios de manifiesto, etc.. - Automatically translated. - - - Línea de comandos adicional {ARGUMENTS} para pasar a la aplicación lanzada por el feed. - Automatically translated. - - - Combine todos los feeds especificados en un único catálogo {FILE}. - Automatically translated. - - - El {URI} del catálogo para reemplazar el catálogo por defecto. Sólo se aplica si Zero Install no está ya desplegado. - Automatically translated. - - - El {PATH} del archivo ZIP a crear desde el directorio de instalación. Dejar sin configurar para no crear ningún archivo ZIP. - Automatically translated. - - - Establecer una configuración de Instalación Cero {0:OPTION} a un {1:VALUE} específico. Sólo anula los archivos de configuración existentes si la Instalación Cero no está ya desplegada. - Automatically translated. - - - {PATH} a un directorio que contiene contenido adicional que se incrustará en el bootstrapper. Puede generar dicho directorio utilizando '0install export'. - Automatically translated. - - - Ofrece al usuario la posibilidad de elegir una ruta personalizada para almacenar las implementaciones. - Automatically translated. - - - Muestra el disco estimado {SPACE} requerido (en bytes). Establece implícitamente --customizable-store-path también. - Automatically translated. - - - Sobrescribir archivos existentes. - Automatically translated. - - - Utilice {PASS} para desbloquear la clave secreta GnuPG. - Automatically translated. - - - Mostrar el texto de ayuda incorporado. - Automatically translated. - - - {PATH} del directorio en el que está instalada la aplicación que se va a capturar. Dejar sin configurar para autodetectar. - Automatically translated. - - - Línea de comandos {ARGUMENTS} para pasar a '0install integrate'. Deje sin establecer para no llamar a '0install integrate' en absoluto. - Automatically translated. - - - Clave a utilizar para firmar (si tienes más de una, o si quieres renunciar con una clave diferente). - Automatically translated. - - - El relativo {PATH} al EXE principal de la aplicación a capturar. Dejar sin configurar para autodetectar. - Automatically translated. - - - Opciones: - Automatically translated. - - - {URI} o ruta al ejecutable de la plantilla boostrap. Dejar sin definir para descargar desde la ubicación por defecto. - Automatically translated. - - - Elimina las firmas existentes. - Automatically translated. - - - Muestra información sobre la versión. - Automatically translated. - - - Añadir un bloque de firma XML. (Todas las fuentes remotas deben estar firmadas) - Automatically translated. - - - Modo de funcionamiento desconocido. -Pruebe {0} - Automatically translated. - - - Utilización: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.fr.resx b/src/Publish.Cli/Properties/Resources.fr.resx deleted file mode 100644 index b544039..0000000 --- a/src/Publish.Cli/Properties/Resources.fr.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Entrez le mot de passe GnuPG pour {0}, svp: - Manually overriden. - - - Construction du bootstrapper - Automatically translated. - - - Construit un Bootstrapper Zero Install personnalisé pour l'exécution ou l'intégration d'un flux spécifique. - Automatically translated. - - - Capture des instantanés de l'état du système et les compare pour générer un flux. - Automatically translated. - - - Téléchargement de {0} - Manually overriden. - - - Le format du flux n'est pas correct. - Manually overriden. - - - Le fichier '{0}' existe déjà. Utilisez --force pour l'écraser. - Automatically translated. - - - Ce programme est fourni SANS AUCUNE GARANTIE, dans les limites prévues par la loi applicable. -Vous pouvez redistribuer des copies de ce programme suivant les termes de la “GNU Lesser General Public License”. - Manually overriden. - - - Arguments manquants. Essayer {0} - Automatically translated. - - - Impossible de trouver les fichiers de flux correspondants. - Manually overriden. - - - Télécharger les archives manquantes, calculer les résumés des manifestes, etc. - Automatically translated. - - - Ligne de commande supplémentaire {ARGUMENTS} à transmettre à l'application lancée par le flux. - Automatically translated. - - - Combinez tous les flux spécifiés en un seul catalogue {FILE}. - Automatically translated. - - - Le site {URI} du catalogue qui remplacera le catalogue par défaut. Ne s'applique que si Zero Install n'est pas déjà déployé. - Automatically translated. - - - {PATH} du fichier ZIP à créer à partir du répertoire d'installation. Laissez cette valeur non définie pour ne pas créer d'archive ZIP. - Automatically translated. - - - Définir une configuration de Zero Install {0:OPTION} à une {1:VALUE} spécifique. Ne remplace les fichiers de configuration existants que si Zero Install n'est pas déjà déployé. - Automatically translated. - - - {PATH} vers un répertoire contenant du contenu supplémentaire à intégrer dans le bootstrapper. Vous pouvez générer un tel répertoire en utilisant '0install export'. - Automatically translated. - - - Offre à l'utilisateur la possibilité de choisir un chemin d'accès personnalisé pour le stockage des implémentations. - Automatically translated. - - - Affiche l'estimation du disque {SPACE} nécessaire (en octets). Définit aussi implicitement --customizable-store-path. - Automatically translated. - - - Ecraser les fichiers existants. - Automatically translated. - - - Utilisez {PASS} pour déverrouiller la clé secrète de GnuPG. - Automatically translated. - - - Affiche le texte d'aide encastrée. - Manually overriden. - - - {PATH} du répertoire dans lequel l'application à capturer est installée. Laisser non défini pour une détection automatique. - Automatically translated. - - - Ligne de commande {ARGUMENTS} à transmettre à '0install integrate'. Laissez le paramètre non défini pour ne pas appeler '0install integrate' du tout. - Automatically translated. - - - Clé à utiliser pour la signature (si vous en avez plusieurs, ou si vous voulez signer avec une clé différente). - Automatically translated. - - - {PATH} relatif à l'EXE principal de l'application à capturer. Ne pas définir pour une détection automatique. - Automatically translated. - - - Options : - Manually overriden. - - - {URI} ou le chemin d'accès à l'exécutable du modèle boostrap. Laissez ce champ vide pour télécharger à partir de l'emplacement par défaut. - Automatically translated. - - - Supprimez toutes les signatures existantes. - Automatically translated. - - - Affiche les informations de version. - Manually overriden. - - - Ajout d'un bloc de signature XML. (Tous les flux à distance doivent être signés) - Automatically translated. - - - Mode de fonctionnement inconnu. -Essayer {0} - Automatically translated. - - - Usage: - Manually overriden. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.id.resx b/src/Publish.Cli/Properties/Resources.id.resx deleted file mode 100644 index d4709ab..0000000 --- a/src/Publish.Cli/Properties/Resources.id.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Masukkan kata sandi GnuPG untuk {0}: - Automatically translated. - - - Membangun bootstrapper - Automatically translated. - - - Membangun Zero Install Bootstrapper yang disesuaikan untuk menjalankan atau mengintegrasikan feed tertentu. - Automatically translated. - - - Menangkap snapshot status sistem dan membandingkannya untuk menghasilkan feed. - Automatically translated. - - - Mengunduh {0} - Manually overriden. - - - Umpan tidak memiliki format yang benar. - Automatically translated. - - - File '{0}' sudah ada. Gunakan --force untuk menimpa. - Automatically translated. - - - Program ini hadir tanpa jaminan sama sekali, sejauh diizinkan oleh hukum. -Anda dapat menyebarluaskan salinan program ini di bawah ketentuan Lisensi Publik Umum GNU Lesser. - Automatically translated. - - - Argumen yang hilang. Mencoba {0} - Automatically translated. - - - Tidak dapat menemukan file feed yang cocok. - Automatically translated. - - - Unduh arsip yang hilang, hitung intisari manifes, dll.. - Automatically translated. - - - Baris perintah tambahan {ARGUMENTS} untuk diteruskan ke aplikasi yang diluncurkan oleh feed. - Automatically translated. - - - Menggabungkan semua feed yang ditentukan ke dalam satu katalog {FILE}. - Automatically translated. - - - Katalog {URI} untuk menggantikan katalog default. Hanya berlaku jika Zero Install belum digunakan. - Automatically translated. - - - {PATH} dari file ZIP yang akan dibuat dari direktori instalasi. Biarkan tidak diatur untuk tidak membuat arsip ZIP. - Automatically translated. - - - Mengatur konfigurasi Zero Install {0:OPTION} ke {1:VALUE} tertentu. Hanya mengganti file konfigurasi yang sudah ada jika Zero Install belum digunakan. - Automatically translated. - - - {PATH} ke direktori yang berisi konten tambahan yang akan disematkan pada bootstrapper. Anda dapat membuat direktori seperti itu dengan menggunakan '0install export'. - Automatically translated. - - - Menawarkan pengguna untuk memilih jalur khusus untuk menyimpan implementasi. - Automatically translated. - - - Menampilkan perkiraan disk {SPACE} yang dibutuhkan (dalam byte). Secara implisit juga mengatur --customizable-store-path. - Automatically translated. - - - Menimpa file yang sudah ada. - Automatically translated. - - - Gunakan {PASS} untuk membuka kunci rahasia GnuPG. - Automatically translated. - - - Menampilkan teks bantuan bawaan. - Automatically translated. - - - {PATH} direktori tempat aplikasi yang akan diambil gambarnya diinstal. Biarkan tidak diatur untuk mendeteksi secara otomatis. - Automatically translated. - - - Baris perintah {ARGUMENTS} untuk diteruskan ke '0install integrate'. Biarkan tidak diatur untuk tidak memanggil '0install integrate' sama sekali. - Automatically translated. - - - Tombol yang digunakan untuk menandatangani (jika Anda memiliki lebih dari satu, atau jika Anda ingin mengundurkan diri dengan tombol yang berbeda). - Automatically translated. - - - Relatif {PATH} ke EXE utama aplikasi yang akan ditangkap. Biarkan tidak disetel untuk mendeteksi otomatis. - Automatically translated. - - - Opsi: - Automatically translated. - - - {URI} atau jalur ke templat boostrap yang dapat dieksekusi. Biarkan tidak diatur untuk mengunduh dari lokasi default. - Automatically translated. - - - Menghapus semua tanda tangan yang ada. - Automatically translated. - - - Menampilkan informasi versi. - Automatically translated. - - - Menambahkan blok tanda tangan XML. (Semua umpan jarak jauh harus ditandatangani.) - Automatically translated. - - - Mode operasi yang tidak diketahui. -Mencoba {0} - Automatically translated. - - - Penggunaan: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.it.resx b/src/Publish.Cli/Properties/Resources.it.resx deleted file mode 100644 index bbf01c6..0000000 --- a/src/Publish.Cli/Properties/Resources.it.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Inserire la passphrase GnuPG per {0}: - Automatically translated. - - - Costruire il bootstrapper - Automatically translated. - - - Costruisce un Bootstrapper Zero Install personalizzato per l'esecuzione o l'integrazione di un feed specifico. - Automatically translated. - - - Cattura istantanee dello stato del sistema e le confronta per generare un feed. - Automatically translated. - - - Download di {0} in corso - Manually overriden. - - - Il feed non ha il formato corretto. - Automatically translated. - - - Il file '{0}' esiste già. Usare --force per sovrascriverlo. - Automatically translated. - - - Questo programma non è accompagnato da alcuna garanzia, nei limiti consentiti dalla legge. -È possibile ridistribuire copie di questo programma secondo i termini della GNU Lesser General Public License. - Automatically translated. - - - Argomenti mancanti. Prova {0} - Automatically translated. - - - Impossibile trovare file di alimentazione corrispondenti. - Automatically translated. - - - Scarica gli archivi mancanti, calcola i manifest digest, ecc. - Automatically translated. - - - Linea di comando aggiuntiva {ARGUMENTS} da passare all'applicazione lanciata dal feed. - Automatically translated. - - - Combina tutti i feed specificati in un unico catalogo {FILE}. - Automatically translated. - - - {URI} del catalogo da sostituire a quello predefinito. Si applica solo se Zero Install non è già stato distribuito. - Automatically translated. - - - {PATH} del file ZIP da creare dalla directory di installazione. Lasciare non impostato per non creare alcun archivio ZIP. - Automatically translated. - - - Imposta una configurazione di Zero Install {0:OPTION} su uno specifico {1:VALUE}. Sovrascrive i file di configurazione esistenti solo se Zero Install non è già stato distribuito. - Automatically translated. - - - {PATH} a una cartella contenente contenuti aggiuntivi da incorporare nel bootstrapper. È possibile generare tale directory usando '0install export'. - Automatically translated. - - - Offre all'utente la possibilità di scegliere un percorso personalizzato per la memorizzazione delle implementazioni. - Automatically translated. - - - Mostra la stima del disco {SPACE} richiesto (in byte). Imposta implicitamente anche --percorso di memorizzazione personalizzabile. - Automatically translated. - - - Sovrascrittura dei file esistenti. - Automatically translated. - - - Utilizzare {PASS} per sbloccare la chiave segreta di GnuPG. - Automatically translated. - - - Mostra il testo di aiuto incorporato. - Automatically translated. - - - {PATH} della directory in cui è installata l'applicazione da catturare. Lasciare non impostato per rilevare automaticamente. - Automatically translated. - - - Linea di comando {ARGUMENTS} da passare a '0install integrate'. Lasciare unset per non chiamare affatto '0install integrate'. - Automatically translated. - - - Chiave da utilizzare per la firma (se ne avete più di una o se volete dimettervi con una chiave diversa). - Automatically translated. - - - L'indirizzo {PATH} relativo all'EXE principale dell'applicazione da catturare. Lasciare non impostato per rilevare automaticamente. - Automatically translated. - - - Opzioni: - Automatically translated. - - - {URI} o il percorso dell'eseguibile del modello boostrap. Lasciare non impostato per scaricare dal percorso predefinito. - Automatically translated. - - - Rimuovere le firme esistenti. - Automatically translated. - - - Visualizzazione delle informazioni sulla versione. - Automatically translated. - - - Aggiungere un blocco di firma XML. (Tutti i feed remoti devono essere firmati) - Automatically translated. - - - Modalità di funzionamento sconosciuta. -Prova {0} - Automatically translated. - - - Utilizzo: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.ja.resx b/src/Publish.Cli/Properties/Resources.ja.resx deleted file mode 100644 index acb2b8d..0000000 --- a/src/Publish.Cli/Properties/Resources.ja.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {0} のGnuPGパスフレーズを入力してください: - Automatically translated. - - - ブートストラッパーの構築 - Automatically translated. - - - 特定のフィードを実行または統合するためにカスタマイズされたゼロインストール・ブートストラッパーを構築します。 - Automatically translated. - - - システム状態のスナップショットをキャプチャし、それらを比較してフィードを生成します。 - Automatically translated. - - - {0}をダウンロード中 - Manually overriden. - - - フィードのフォーマットが正しくありません。 - Automatically translated. - - - ファイル '{0}' はすでに存在します。上書きするには --force を使用してください。 - Automatically translated. - - - このプログラムには、法律で認められている限りにおいて、まったくの無保証が付きます。 -あなたは、GNU Lesser General Public Licenseの条件の下で、このプログラムのコピーを再配布することができます。 - Automatically translated. - - - 引数がありません。試す{0} - Automatically translated. - - - 一致するフィードファイルが見つかりません。 - Automatically translated. - - - 見つからないアーカイブのダウンロード、マニフェスト・ダイジェストの計算など。 - Automatically translated. - - - フィードによって起動されるアプリケーションに渡す追加のコマンドライン{ARGUMENTS}. - Automatically translated. - - - 指定されたすべてのフィードを1つのカタログにまとめる{FILE} 。 - Automatically translated. - - - デフォルトのカタログを置き換えるカタログの{URI} 。Zero Installがまだデプロイされていない場合にのみ適用されます。 - Automatically translated. - - - インストールディレクトリから作成するZIPファイルの{PATH} 。ZIPアーカイブを作成しない場合は未設定のままにします。 - Automatically translated. - - - Zero Install 設定{0:OPTION} を特定の{1:VALUE} に設定します。Zero Install がまだデプロイされていない場合にのみ、既存の設定ファイルを上書きします。 - Automatically translated. - - - {PATH} には、ブートストラッパーに埋め込む追加コンテンツを含むディレクトリを指定します。このようなディレクトリは、'0install export'を使って生成することができます。 - Automatically translated. - - - 実装を保存するためのカスタムパスを選択できる。 - Automatically translated. - - - 必要なディスク{SPACE} の見積もり(バイト単位)を表示します。暗黙的に --customizable-store-path も設定する。 - Automatically translated. - - - 既存のファイルを上書きします。 - Automatically translated. - - - {PASS} 、GnuPG秘密鍵を解除してください。 - Automatically translated. - - - 組み込みのヘルプテキストを表示します。 - Automatically translated. - - - キャプチャするアプリケーションがインストールされているディレクトリの{PATH} 。自動検出する場合は未設定のままにしてください。 - Automatically translated. - - - コマンドライン{ARGUMENTS} '0install integrate' に渡します。unsetのままにすると、'0install integrate'をまったく呼び出さなくなります。 - Automatically translated. - - - 署名に使用するキー(複数のキーをお持ちの場合、または別のキーで辞任したい場合)。 - Automatically translated. - - - キャプチャするアプリケーションのメインEXEへの相対{PATH} 。自動検出する場合は未設定のままにしてください。 - Automatically translated. - - - オプション: - Automatically translated. - - - {URI} またはboostrapテンプレート実行ファイルへのパス。デフォルトの場所からダウンロードする場合は未設定のままにして下さい。 - Automatically translated. - - - 既存の署名を削除します。 - Automatically translated. - - - バージョン情報を表示します。 - Automatically translated. - - - XML署名ブロックを追加。(すべてのリモートフィードには署名が必要です)。 - Automatically translated. - - - 不明な操作モード。 -試す{0} - Automatically translated. - - - 使い方: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.ko.resx b/src/Publish.Cli/Properties/Resources.ko.resx deleted file mode 100644 index ba4bc95..0000000 --- a/src/Publish.Cli/Properties/Resources.ko.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {0} 에 대한 GnuPG 암호를 입력하세요: - Automatically translated. - - - 부트스트래퍼 구축 - Automatically translated. - - - 특정 피드를 실행하거나 통합하기 위한 맞춤형 제로 인스톨 부트스트래퍼를 빌드합니다. - Automatically translated. - - - 시스템 상태의 스냅샷을 캡처하고 이를 비교하여 피드를 생성합니다. - Automatically translated. - - - {0} 다운로드 중 - Manually overriden. - - - 피드의 형식이 올바르지 않습니다. - Automatically translated. - - - '{0}' 파일이 이미 존재합니다. 덮어쓰려면 --force를 사용합니다. - Automatically translated. - - - 이 프로그램은 법이 허용하는 한도 내에서 어떠한 보증도 제공하지 않습니다. -이 프로그램의 사본은 GNU 약소 일반 공중 사용 허가서 조건에 따라 재배포할 수 있습니다. - Automatically translated. - - - 인수가 누락되었습니다. 시도 {0} - Automatically translated. - - - 일치하는 피드 파일을 찾을 수 없습니다. - Automatically translated. - - - 누락된 아카이브 다운로드, 적하목록 요약 계산 등... - Automatically translated. - - - 피드에서 실행되는 애플리케이션에 전달할 추가 명령줄 {ARGUMENTS}. - Automatically translated. - - - 지정된 모든 피드를 단일 카탈로그로 결합 {FILE}. - Automatically translated. - - - 기본 카탈로그를 대체할 카탈로그의 {URI}. 제로 인스톨이 아직 배포되지 않은 경우에만 적용됩니다. - Automatically translated. - - - 설치 디렉터리에서 생성할 ZIP 파일의 {PATH}. ZIP 아카이브를 만들지 않으려면 설정하지 않은 상태로 둡니다. - Automatically translated. - - - 제로 인스톨 구성 {0:OPTION} 을 특정 {1:VALUE} 으로 설정합니다. 제로 인스톨이 아직 배포되지 않은 경우에만 기존 구성 파일을 재정의합니다. - Automatically translated. - - - {PATH} 를 부트스트랩퍼에 포함할 추가 콘텐츠가 포함된 디렉터리로 내보내야 합니다. 이러한 디렉토리는 '0install export'를 사용하여 생성할 수 있습니다. - Automatically translated. - - - 구현을 저장하기 위한 사용자 지정 경로를 선택할 수 있도록 사용자에게 제공합니다. - Automatically translated. - - - 필요한 예상 디스크 {SPACE} (바이트 단위)를 표시합니다. 사용자 지정 가능한 저장소 경로도 암시적으로 설정합니다. - Automatically translated. - - - 기존 파일을 덮어씁니다. - Automatically translated. - - - {PASS} 을 사용하여 GnuPG 비밀 키를 잠금 해제합니다. - Automatically translated. - - - 기본 제공 도움말 텍스트를 표시합니다. - Automatically translated. - - - 캡처할 애플리케이션이 설치된 디렉터리의 {PATH}. 자동 감지하려면 설정하지 않은 상태로 둡니다. - Automatically translated. - - - '0설치 통합'에 전달할 명령줄 {ARGUMENTS}. '0설치 통합'을 전혀 호출하지 않으려면 설정하지 않은 상태로 둡니다. - Automatically translated. - - - 서명에 사용할 키(두 개 이상의 키가 있거나 다른 키로 서명하려는 경우). - Automatically translated. - - - 캡처할 애플리케이션의 기본 EXE에 대한 상대 {PATH}. 자동 감지하려면 설정하지 않은 상태로 둡니다. - Automatically translated. - - - 옵션: - Automatically translated. - - - {URI} 또는 부스트랩 템플릿 실행 파일의 경로를 입력합니다. 기본 위치에서 다운로드하려면 설정하지 않은 상태로 둡니다. - Automatically translated. - - - 기존 서명을 모두 제거합니다. - Automatically translated. - - - 버전 정보를 표시합니다. - Automatically translated. - - - XML 서명 블록을 추가합니다. (모든 원격 피드는 서명해야 합니다.) - Automatically translated. - - - 알 수 없는 작동 모드. -시도 {0} - Automatically translated. - - - 사용법: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.nl.resx b/src/Publish.Cli/Properties/Resources.nl.resx deleted file mode 100644 index bf4f0c8..0000000 --- a/src/Publish.Cli/Properties/Resources.nl.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Voer de GnuPG-wachtzin in voor {0}: - Automatically translated. - - - Bootstrapper bouwen - Automatically translated. - - - Bouwt een aangepaste Zero Install Bootstrapper voor het uitvoeren of integreren van een specifieke feed. - Automatically translated. - - - Maakt momentopnames van de systeemstatus en vergelijkt deze om een feed te genereren. - Automatically translated. - - - {0} wordt gedownload - Manually overriden. - - - De feed heeft niet het juiste formaat. - Automatically translated. - - - Het bestand '{0}' bestaat al. Gebruik --force om te overschrijven. - Automatically translated. - - - Dit programma wordt geleverd met ABSOLUUT GEEN GARANTIE, voor zover wettelijk toegestaan. -Je mag kopieën van dit programma verspreiden onder de voorwaarden van de GNU Lesser General Public License. - Automatically translated. - - - Ontbrekende argumenten. Probeer {0} - Automatically translated. - - - Kan geen overeenkomende feedbestanden vinden. - Automatically translated. - - - Download ontbrekende archieven, bereken manifest digests, enz. - Automatically translated. - - - Extra opdrachtregel {ARGUMENTS} om door te geven aan de toepassing die door de feed wordt gestart. - Automatically translated. - - - Combineer alle opgegeven feeds in één catalogus {FILE}. - Automatically translated. - - - De {URI} van de catalogus die de standaard catalogus moet vervangen. Alleen van toepassing als Zero Install nog niet is uitgerold. - Automatically translated. - - - De {PATH} van het ZIP-bestand dat moet worden gemaakt vanuit de installatiemap. Laat unset om geen ZIP-archief aan te maken. - Automatically translated. - - - Stel een Zero Install configuratie {0:OPTION} in op een specifieke {1:VALUE}. Overschrijft alleen bestaande configuratiebestanden als Zero Install nog niet is uitgerold. - Automatically translated. - - - {PATH} naar een map met aanvullende inhoud die moet worden ingesloten in de bootstrapper. Je kunt zo'n map genereren met '0install export'. - Automatically translated. - - - Biedt de gebruiker de mogelijkheid om een eigen pad te kiezen voor het opslaan van implementaties. - Automatically translated. - - - Toont de geschatte benodigde schijf {SPACE} (in bytes). Stelt impliciet ook --customizable-store-path in. - Automatically translated. - - - Bestaande bestanden overschrijven. - Automatically translated. - - - Gebruik {PASS} om de geheime sleutel van GnuPG te ontgrendelen. - Automatically translated. - - - Toon de ingebouwde helptekst. - Automatically translated. - - - De {PATH} van de map waarin de vast te leggen applicatie is geïnstalleerd. Niet ingesteld om automatisch te detecteren. - Automatically translated. - - - Opdrachtregel {ARGUMENTS} om door te geven aan '0install integrate'. Laat unset om '0install integrate' helemaal niet aan te roepen. - Automatically translated. - - - Sleutel om te gebruiken voor het ondertekenen (als je er meer dan één hebt, of als je wilt ondertekenen met een andere sleutel). - Automatically translated. - - - De relatieve {PATH} naar de hoofd-EXE van de vast te leggen toepassing. Niet ingesteld om automatisch te detecteren. - Automatically translated. - - - Opties: - Automatically translated. - - - {URI} of pad naar het uitvoerbare bestand van het boostrap-sjabloon. Laat unset om te downloaden van de standaard locatie. - Automatically translated. - - - Verwijder bestaande handtekeningen. - Automatically translated. - - - Versie-informatie weergeven. - Automatically translated. - - - Een XML-handtekeningblok toevoegen. (Alle feeds op afstand moeten worden ondertekend) - Automatically translated. - - - Onbekende bedieningsmodus. -Probeer {0} - Automatically translated. - - - Gebruik: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.pl.resx b/src/Publish.Cli/Properties/Resources.pl.resx deleted file mode 100644 index 75ecb86..0000000 --- a/src/Publish.Cli/Properties/Resources.pl.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Wprowadź hasło GnuPG dla {0}: - Automatically translated. - - - Budowanie bootstrappera - Automatically translated. - - - Buduje dostosowany Zero Install Bootstrapper do uruchamiania lub integracji określonego kanału. - Automatically translated. - - - Przechwytuje migawki stanu systemu i porównuje je w celu wygenerowania pliku danych. - Automatically translated. - - - Pobieranie {0} - Manually overriden. - - - Kanał nie ma prawidłowego formatu. - Automatically translated. - - - Plik '{0}' już istnieje. Użyj --force, aby nadpisać. - Automatically translated. - - - Ten program nie jest objęty ABSOLUTNIE ŻADNĄ GWARANCJĄ w zakresie dozwolonym przez prawo. -Kopie tego programu można rozpowszechniać na warunkach licencji GNU Lesser General Public License. - Automatically translated. - - - Brakujące argumenty. Spróbuj {0} - Automatically translated. - - - Nie można znaleźć pasujących plików źródłowych. - Automatically translated. - - - Pobieranie brakujących archiwów, obliczanie manifestów itp. - Automatically translated. - - - Dodatkowy wiersz poleceń {ARGUMENTS} do przekazania do aplikacji uruchamianej przez feed. - Automatically translated. - - - Łączenie wszystkich określonych kanałów w jeden katalog {FILE}. - Automatically translated. - - - {URI} katalogu, który zastąpi katalog domyślny. Dotyczy tylko sytuacji, gdy Zero Install nie zostało jeszcze wdrożone. - Automatically translated. - - - {PATH} pliku ZIP do utworzenia z katalogu instalacyjnego. Pozostaw bez ustawienia, aby nie tworzyć archiwum ZIP. - Automatically translated. - - - Ustaw konfigurację Zero Install {0:OPTION} na określoną {1:VALUE}. Zastępuje istniejące pliki konfiguracyjne tylko wtedy, gdy Zero Install nie zostało jeszcze wdrożone. - Automatically translated. - - - {PATH} do katalogu zawierającego dodatkową zawartość, która zostanie osadzona w bootstrapperze. Taki katalog można wygenerować za pomocą polecenia "0install export". - Automatically translated. - - - Oferuje użytkownikowi wybór niestandardowej ścieżki do przechowywania implementacji. - Automatically translated. - - - Pokazuje szacowany wymagany dysk {SPACE} (w bajtach). Niejawnie ustawia również --customizable-store-path. - Automatically translated. - - - Nadpisywanie istniejących plików. - Automatically translated. - - - Użyj {PASS}, aby odblokować tajny klucz GnuPG. - Automatically translated. - - - Wyświetla wbudowany tekst pomocy. - Automatically translated. - - - {PATH} katalogu, w którym zainstalowana jest aplikacja do przechwycenia. Pozostaw bez ustawienia, aby automatycznie wykryć. - Automatically translated. - - - Wiersz poleceń {ARGUMENTS} do przekazania do '0install integrate'. Pozostaw bez ustawienia, aby w ogóle nie wywoływać '0install integrate'. - Automatically translated. - - - Klucz używany do podpisywania (jeśli masz więcej niż jeden lub jeśli chcesz zrezygnować z innego klucza). - Automatically translated. - - - Względny adres {PATH} do głównego pliku EXE aplikacji, która ma zostać przechwycona. Pozostaw bez ustawienia, aby automatycznie wykryć. - Automatically translated. - - - Opcje: - Automatically translated. - - - {URI} lub ścieżka do pliku wykonywalnego szablonu boostrap. Pozostaw nie ustawione, aby pobrać z domyślnej lokalizacji. - Automatically translated. - - - Usuwanie istniejących podpisów. - Automatically translated. - - - Wyświetlanie informacji o wersji. - Automatically translated. - - - Dodanie bloku podpisu XML. (Wszystkie zdalne kanały muszą być podpisane) - Automatically translated. - - - Nieznany tryb działania. -Spróbuj {0} - Automatically translated. - - - Użycie: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.pt-BR.resx b/src/Publish.Cli/Properties/Resources.pt-BR.resx deleted file mode 100644 index 5403fa3..0000000 --- a/src/Publish.Cli/Properties/Resources.pt-BR.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Por favor, digite a senha do GnuPG para {0}: - Manually overriden. - - - Criando bootstrapper - Manually overriden. - - - Cria um Zero Install Bootstrapper personalizado para executar ou integrar um feed específico. - Manually overriden. - - - Captura instantâneos do estado do sistema e os compara para gerar um feed. - Manually overriden. - - - Fazendo download de {0} - Manually overriden. - - - Este feed não possui o formato correto. - Manually overriden. - - - O arquivo '{0}' já existe. Use --force para sobrescrever. - Manually overriden. - - - Este programa vem com ABSOLUTAMENTE NENHUMA GARANTIA, na medida permitida por lei. -Você pode redistribuir cópias deste programa sob os termos da GNU Lesser General Public License. - Manually overriden. - - - Argumentos faltando. Tente {0} - Manually overriden. - - - Não foi possível localizar nenhum arquivo de feed correspondente. - Manually overriden. - - - Baixe arquivos ausentes, calcule resumos de manifestos, etc. - Manually overriden. - - - Linha de comando adicional {ARGUMENTS} para passar para o aplicativo iniciado pelo feed. - Manually overriden. - - - Combine todos os feeds especificados em um único catálogo {FILE}. - Manually overriden. - - - O {URI} do catálogo para substituir o catálogo padrão. Aplica-se apenas se o Zero Install ainda não estiver implantado. - Manually overriden. - - - O {PATH} do arquivo ZIP a ser criado na pasta de instalação. Deixe indefinido para não criar nenhum arquivo ZIP. - Manually overriden. - - - Define uma configuração do Zero Install {0:OPTION} como um {1:VALUE} específico. Substitui apenas os arquivos de configuração existentes se o Zero Install ainda não estiver implantado. - Manually overriden. - - - {PATH} para uma pasta contendo conteúdo adicional a ser incorporado no bootstrapper. Você pode gerar essa pasta usando '0install export'. - Manually overriden. - - - Ofereçe ao usuário a escolha de um caminho personalizado para armazenar implementações. - Manually overriden. - - - Mostre o {SPACE} em disco estimado necessário (em bytes). Define implicitamente --customizable-store-path também. - Manually overriden. - - - Sobrescreve os arquivos existentes. - Manually overriden. - - - Use {PASS} para desbloquear a chave secreta do GnuPG. - Manually overriden. - - - Mostra o texto de ajuda integrado. - Manually overriden. - - - O {PATH} da pasta onde o aplicativo a ser capturado está instalado. Deixe indefinido para detecção automática. - Manually overriden. - - - Linha de comando {ARGUMENTOS} para passar para '0install integrate'. Deixe sem definição para não chamar '0install integrate'. - Manually overriden. - - - Chave a ser usada para assinatura (se você tiver mais de uma ou se quiser renunciar com uma chave diferente). - Manually overriden. - - - O {PATH} relativo ao EXE principal do aplicativo a ser capturado. Deixe indefinido para detecção automática. - Manually overriden. - - - Opções: - Manually overriden. - - - {URI} ou caminho para o executável do modelo de inicialização. Deixe indefinido para fazer download do local padrão. - Manually overriden. - - - Remova todas as assinaturas existentes. - Manually overriden. - - - Exibir informações de versão. - Manually overriden. - - - Adicione um bloco de assinatura XML. (Todos os feeds remotos devem ser assinados.) - Manually overriden. - - - Modo de operação desconhecido. -Tente {0} - Manually overriden. - - - Uso: - Manually overriden. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.pt-PT.resx b/src/Publish.Cli/Properties/Resources.pt-PT.resx deleted file mode 100644 index ab9e838..0000000 --- a/src/Publish.Cli/Properties/Resources.pt-PT.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Introduza a frase-passe GnuPG para {0}: - Automatically translated. - - - Construir o bootstrapper - Automatically translated. - - - Constrói um Bootstrapper personalizado de instalação zero para executar ou integrar um feed específico. - Automatically translated. - - - Captura instantâneos do estado do sistema e compara-os para gerar um feed. - Automatically translated. - - - A transferir {0} - Manually overriden. - - - O feed não tem o formato correto. - Automatically translated. - - - O ficheiro '{0}' já existe. Utilize --force para o substituir. - Automatically translated. - - - Este programa vem com ABSOLUTAMENTE NENHUMA GARANTIA, até o limite permitido por lei. -Pode redistribuir cópias deste programa sob os termos da GNU Lesser General Public License. - Automatically translated. - - - Argumentos em falta. Tentativa {0} - Automatically translated. - - - Não é possível encontrar ficheiros de alimentação correspondentes. - Automatically translated. - - - Descarregue os arquivos em falta, calcule os manifest digests, etc. - Automatically translated. - - - Linha de comando adicional {ARGUMENTS} para passar para a aplicação lançada pelo feed. - Automatically translated. - - - Combinar todos os feeds especificados num único catálogo {FILE}. - Automatically translated. - - - O {URI} do catálogo para substituir o catálogo padrão. Só se aplica se a Instalação Zero ainda não tiver sido implementada. - Automatically translated. - - - O {PATH} do ficheiro ZIP a criar a partir do diretório de instalação. Não definir para não criar nenhum ficheiro ZIP. - Automatically translated. - - - Definir uma configuração do Zero Install {0:OPTION} para um {1:VALUE} específico. Apenas substitui os ficheiros de configuração existentes se o Zero Install ainda não tiver sido implementado. - Automatically translated. - - - {PATH} para um diretório que contém conteúdo adicional a ser incorporado no bootstrapper. Pode gerar tal diretório utilizando '0install export'. - Automatically translated. - - - Oferece ao utilizador a possibilidade de escolher um caminho personalizado para armazenar as implementações. - Automatically translated. - - - Mostra o disco estimado {SPACE} necessário (em bytes). Implicitamente define --customizable-store-path também. - Automatically translated. - - - Substituir ficheiros existentes. - Automatically translated. - - - Utilize {PASS} para desbloquear a chave secreta do GnuPG. - Automatically translated. - - - Mostrar o texto de ajuda incorporado. - Automatically translated. - - - O {PATH} do diretório onde está instalada a aplicação a capturar. Deixar em branco para a deteção automática. - Automatically translated. - - - Linha de comando {ARGUMENTS} para passar para '0install integrate'. Deixe unset para não chamar '0install integrate' de forma alguma. - Automatically translated. - - - Chave a utilizar para assinar (se tiver mais do que uma, ou se quiser assinar com uma chave diferente). - Automatically translated. - - - O {PATH} relativo ao EXE principal da aplicação a ser capturada. Não definir para deteção automática. - Automatically translated. - - - Opções: - Automatically translated. - - - {URI} ou caminho para o executável do modelo boostrap. Deixar não definido para descarregar a partir da localização predefinida. - Automatically translated. - - - Remover as assinaturas existentes. - Automatically translated. - - - Visualizar informações sobre a versão. - Automatically translated. - - - Adicionar um bloco de assinatura XML. (Todos os feeds remotos devem ser assinados) - Automatically translated. - - - Modo de funcionamento desconhecido. -Tentativa {0} - Automatically translated. - - - Utilização: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.resx b/src/Publish.Cli/Properties/Resources.resx deleted file mode 100644 index 7041374..0000000 --- a/src/Publish.Cli/Properties/Resources.resx +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Please enter the GnuPG passphrase for {0}: - - - Building bootstrapper - - - Builds a customized Zero Install Bootstrapper for running or integrating a specific feed. - - - Captures snapshots of the system state and compares them to generate a feed. - - - Downloading {0} - - - The feed does not have the correct format. - - - The file '{0}' already exists. Use --force to overwrite. - - - This program comes with ABSOLUTELY NO WARRANTY, to the extent permitted by law. -You may redistribute copies of this program under the terms of the GNU Lesser General Public License. - - - Missing arguments. Try {0} - - - Unable to find any matching feed files. - - - Download missing archives, calculate manifest digests, etc.. - - - Additional command-line {ARGUMENTS} to pass to the application launched by the feed. - - - Combine all specified feeds into a single catalog {FILE}. - - - The {URI} of the catalog to replace the default catalog. Only applies if Zero Install is not already deployed. - - - The {PATH} of the ZIP file to create from the installation directory. Leave unset to create no ZIP archive. - - - Set a Zero Install configuration {0:OPTION} to a specific {1:VALUE}. Only overrides existing config files if Zero Install is not already deployed. - - - {PATH} to a directory containing additional content to be embedded in the bootstrapper. You can generate such a directory using '0install export'. - - - Offer the user to choose a custom path for storing implementations. - - - Show the estimated disk {SPACE} required (in bytes). Implicitly sets --customizable-store-path too. - - - Overwrite existing files. - - - Use {PASS} to unlock the GnuPG secret key. - - - The {PATH} of the directory the application to be captured is installed in. Leave unset to auto-detect. - - - Show the built-in help text. - - - Command-line {ARGUMENTS} to pass to '0install integrate'. Leave unset to not call '0install integrate' at all. - - - Key to use for signing (if you have more than one, or if you want to resign with a different key). - - - The relative {PATH} to the main EXE of the application to be captured. Leave unset to auto-detect. - - - Options: - - - {URI} or path to the boostrap template executable. Leave unset to download from default location. - - - Remove any existing signatures. - - - Display version information. - - - Add an XML signature block. (All remote feeds must be signed.) - - - Unknown operation mode. -Try {0} - - - Usage: - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.ro.resx b/src/Publish.Cli/Properties/Resources.ro.resx deleted file mode 100644 index 75e7f4c..0000000 --- a/src/Publish.Cli/Properties/Resources.ro.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Vă rugăm să introduceți fraza de acces GnuPG pentru {0}: - Automatically translated. - - - Construirea bootstrapper-ului - Automatically translated. - - - Construiește un Bootstrapper de instalare zero personalizat pentru rularea sau integrarea unui anumit flux. - Automatically translated. - - - Captează instantanee ale stării sistemului și le compară pentru a genera un feed. - Automatically translated. - - - Se descarcă {0} - Manually overriden. - - - Feed-ul nu are formatul corect. - Automatically translated. - - - Fișierul '{0}' există deja. Folosiți --force pentru a suprascrie. - Automatically translated. - - - Acest program vine cu ABSOLUT NICI O GARANȚIE, în măsura permisă de lege. -Puteți redistribui copii ale acestui program în conformitate cu termenii licenței GNU Lesser General Public License. - Automatically translated. - - - Argumente lipsă. Încercați {0} - Automatically translated. - - - Nu se poate găsi niciun fișier de alimentare corespunzător. - Automatically translated. - - - Descărcați arhivele lipsă, calculați digestările manifest, etc.. - Automatically translated. - - - Linie de comandă suplimentară {ARGUMENTS} pentru a fi transmisă aplicației lansate de feed. - Automatically translated. - - - Combină toate fluxurile specificate într-un singur catalog {FILE}. - Automatically translated. - - - {URI} catalogul care va înlocui catalogul implicit. Se aplică numai dacă Zero Install nu este deja implementat. - Automatically translated. - - - Adresa {PATH} a fișierului ZIP care trebuie creat din directorul de instalare. Lăsați unset pentru a nu crea nicio arhivă ZIP. - Automatically translated. - - - Setați o configurație Zero Install {0:OPTION} la un anumit {1:VALUE}. Suprascrie fișierele de configurare existente numai dacă Zero Install nu este deja implementat. - Automatically translated. - - - {PATH} către un director care conține conținut suplimentar care urmează să fie încorporat în bootstrapper. Puteți genera un astfel de director folosind "0install export". - Automatically translated. - - - Oferă utilizatorului posibilitatea de a alege o cale personalizată pentru stocarea implementărilor. - Automatically translated. - - - Afișează valoarea estimată a discului {SPACE} necesar (în bytes). Stabilește implicit și --customizable-store-path. - Automatically translated. - - - Suprascrie fișierele existente. - Automatically translated. - - - Utilizați {PASS} pentru a debloca cheia secretă GnuPG. - Automatically translated. - - - Afișarea textului de ajutor încorporat. - Automatically translated. - - - {PATH} al directorului în care este instalată aplicația care urmează să fie capturată. Se lasă nedefinit pentru detectarea automată. - Automatically translated. - - - Linia de comandă {ARGUMENTS} de transmis la "0install integrate". Lasă unset pentru a nu apela deloc "0install integrate". - Automatically translated. - - - Cheia de utilizat pentru semnare (dacă aveți mai multe chei sau dacă doriți să semnați cu o altă cheie). - Automatically translated. - - - Relativ {PATH} la EXE-ul principal al aplicației care urmează să fie capturată. Se lasă nedefinit pentru detectarea automată. - Automatically translated. - - - Opțiuni: - Automatically translated. - - - {URI} sau calea către executabilul șablonului boostrap. Lasă unset pentru a descărca din locația implicită. - Automatically translated. - - - Îndepărtați toate semnăturile existente. - Automatically translated. - - - Afișarea informațiilor despre versiune. - Automatically translated. - - - Adăugarea unui bloc de semnături XML. (Toate fluxurile de la distanță trebuie să fie semnate) - Automatically translated. - - - Mod de operare necunoscut. -Încercați {0} - Automatically translated. - - - Utilizare: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.ru.resx b/src/Publish.Cli/Properties/Resources.ru.resx deleted file mode 100644 index 1dacfd6..0000000 --- a/src/Publish.Cli/Properties/Resources.ru.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Пожалуйста, введите парольную фразу GnuPG для {0}: - Automatically translated. - - - Сборка бутстраппера - Automatically translated. - - - Сборка настраиваемого Zero Install Bootstrapper для запуска или интеграции определенного фида. - Automatically translated. - - - Захватывает снимки состояния системы и сравнивает их для создания отчета. - Automatically translated. - - - Загрузка {0} - Manually overriden. - - - Поток не имеет правильного формата. - Automatically translated. - - - Файл '{0}' уже существует. Используйте --force для перезаписи. - Automatically translated. - - - Эта программа поставляется с АБСОЛЮТНОЙ НЕ ГАРАНТИЕЙ, в пределах, разрешенных законом. -Вы можете распространять копии этой программы в соответствии с условиями GNU Lesser General Public License. - Automatically translated. - - - Недостающие аргументы. Попробуйте {0} - Automatically translated. - - - Невозможно найти подходящие файлы фидов. - Automatically translated. - - - Загрузка недостающих архивов, вычисление дайджестов манифеста и т. д. - Automatically translated. - - - Дополнительная командная строка {ARGUMENTS} для передачи в приложение, запускаемое фидом. - Automatically translated. - - - Объединение всех заданных фидов в единый каталог {FILE}. - Automatically translated. - - - Каталог {URI} для замены каталога по умолчанию. Применяется только в том случае, если Zero Install еще не развернут. - Automatically translated. - - - {PATH} ZIP-архив, который будет создан из каталога установки. Оставьте значение без изменения, чтобы не создавать ZIP-архив. - Automatically translated. - - - Установка конфигурации Zero Install {0:OPTION} на определенный {1:VALUE}. Заменяет существующие файлы конфигурации только в том случае, если Zero Install еще не развернут. - Automatically translated. - - - {PATH} в директорию, содержащую дополнительное содержимое для встраивания в бутстраппер. Вы можете сгенерировать такой каталог с помощью команды '0install export'. - Automatically translated. - - - Предложение пользователю выбрать собственный путь для хранения реализаций. - Automatically translated. - - - Показывает предполагаемый объем требуемого диска {SPACE} (в байтах). Неявно задает также --customizable-store-path. - Automatically translated. - - - Перезапись существующих файлов. - Automatically translated. - - - Используйте {PASS} для разблокировки секретного ключа GnuPG. - Automatically translated. - - - Показать текст встроенной справки. - Automatically translated. - - - {PATH} директории, в которой установлено захватываемое приложение. Оставьте значение без изменений для автоматического определения. - Automatically translated. - - - Командная строка {ARGUMENTS} для передачи в '0install integrate'. Оставьте значение unset, чтобы не вызывать '0install integrate' вообще. - Automatically translated. - - - Ключ для подписи (если у вас их несколько, или если вы хотите подписаться другим ключом). - Automatically translated. - - - Относительный {PATH} к основному EXE приложения, которое будет захвачено. Оставьте значение без изменений для автоматического определения. - Automatically translated. - - - Опции: - Automatically translated. - - - {URI} или путь к исполняемому файлу шаблона boostrap. Оставьте значение без изменения, чтобы загрузить из места по умолчанию. - Automatically translated. - - - Удалите все существующие подписи. - Automatically translated. - - - Отображение информации о версии. - Automatically translated. - - - Добавьте блок XML-подписи. (Все удаленные каналы должны быть подписаны) - Automatically translated. - - - Неизвестный режим работы. -Попробуйте {0} - Automatically translated. - - - Использование: - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.tr.resx b/src/Publish.Cli/Properties/Resources.tr.resx deleted file mode 100644 index 354bb4c..0000000 --- a/src/Publish.Cli/Properties/Resources.tr.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {0} için GnuPG parolasını yazın: - Manually overriden. - - - Oluşturma ön yükleyicisi - Manually overriden. - - - Belirli bir akışı çalıştırmak ya da bütünleştirmek için özelleştirilmiş bir Zero Install ön yükleyicisi oluşturur. - Manually overriden. - - - Sistem durumunun anlık görüntülerini alır ve bunları bir özet akışı oluşturmak için karşılaştırır. - Manually overriden. - - - {0} indiriliyor - Manually overriden. - - - Akış biçimi hatalı. - Manually overriden. - - - '{0}' dosyası zaten var. Üzerine yazılması için --force kullanın. - Manually overriden. - - - Bu yazılım, yasaların izin verdiği ölçüde KESİNLİKLE HERHANGİ BİR GARANTİ OLMADAN sunulur. -Bu yazılımın kopyaları GNU Kısıtlı Genel Kamu Lisansı koşullarına bağlı kalınarak dağıtılabilir. - Manually overriden. - - - Değişkenler eksik. {0} deneyin. - Manually overriden. - - - Eşleşen herhangi bir akış dosyası bulunamadı. - Manually overriden. - - - Eksik arşivleri, hazırlanmış öge listesi dosyalarını, vb. indirin. - Manually overriden. - - - Akış tarafından başlatılan uygulamaya aktarılacak ek komut satırı {ARGUMENTS}. - Manually overriden. - - - Belirtilen tüm akışları tek bir katalogda {FILE} birleştirin. - Manually overriden. - - - Varsayılan kataloğun yerini alacak katalog {URI}. Yalnızca Zero Install zaten hazırlanmamış ise uygulanır. - Manually overriden. - - - Kurulum klasöründen oluşturulacak ZIP dosyası {PATH}. ZIP arşivi oluşturulmaması için ayarlanmamış olarak bırakın. - Manually overriden. - - - Zero Install yapılandırmasında {0:OPTION} değerin belirli bir {1:VALUE} olarak ayarlayın. Geçerli yapılandırma dosyaları yalnızca Zero Install zaten hazırlanmamış ise değiştirilir - Manually overriden. - - - Ön yükleyiciye ekleneck içeriklerin bulunduğu klasörün yolu {PATH}. '0install Export' komutu ile böyle bir klasör oluşturabilirsiniz. - Manually overriden. - - - Kullanıcıya uygulamaları depolamak için özel bir yol seçmesini önerir. - Manually overriden. - - - Gerekli ön görülen disk {SPACE} miktarını (bayt olarak) gösterir. Örtülü olarak --customizable-store-path değişkenini de ayarlar. - Manually overriden. - - - Var olan dosyaların üzerine yazılsın. - Manually overriden. - - - GnuPG gizli anahtar kilidini açmak için {PASS} kullanın. - Manually overriden. - - - Yerleşik yardım metnini görün. - Manually overriden. - - - Yakalanacak uygulamanın kurulu olduğu klasör {PATH}. Otomatik olarak algılanması için ayarlamadan bırakın. - Manually overriden. - - - '0install integrate' üzerine aktarılacak komut satırı {ARGUMENTS}. '0install integrate' çağrılmaması için ayarlamadan bırakın. - Manually overriden. - - - İmzalama işlemi için kullanılacak anahtar (birden fazla anahtarınız varsa ya da yeniden imzalama işlemi yapmak istiyorsanız farklı anahtarlar kullanın). - Manually overriden. - - - Yakalanacak uygulamanın ana EXE dosyası {PATH}. Otomatik olarak algılanması için ayarlamadan bırakın. - Manually overriden. - - - Seçenekler: - Manually overriden. - - - Çalıştırılabilir ön yükleme kalıbı {URI} ya da yolu. Varsayılan konumdan indirilmesi için ayarlamadan bırakın. - Manually overriden. - - - Var olan herhangi bir imzayı kaldırın. - Manually overriden. - - - Sürüm bilgilerini görüntüle. - Manually overriden. - - - Bir XML imza kalıbı ekleyin (Tüm uzak akışların imzalanmış olması gerekmektedir). - Manually overriden. - - - İşlem kipi bilinmiyor. -{0} deneyin - Manually overriden. - - - Kullanım: - Manually overriden. - - \ No newline at end of file diff --git a/src/Publish.Cli/Properties/Resources.zh.resx b/src/Publish.Cli/Properties/Resources.zh.resx deleted file mode 100644 index 2703d0b..0000000 --- a/src/Publish.Cli/Properties/Resources.zh.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 请输入{0} 的 GnuPG 口令: - Automatically translated. - - - 构建引导程序 - Automatically translated. - - - 构建定制的零安装引导程序,用于运行或集成特定的 feed。 - Automatically translated. - - - 捕捉系统状态快照并进行比较,生成反馈。 - Automatically translated. - - - 下载 {0} - Manually overriden. - - - 供稿格式不正确。 - Automatically translated. - - - 文件{0} 已经存在。使用 --force 进行覆盖。 - Automatically translated. - - - 在法律允许的范围内,本程序不提供任何担保。 -您可以根据 GNU 宽通用公共许可证的条款重新发布本程序的副本。 - Automatically translated. - - - 缺少参数。尝试{0} - Automatically translated. - - - 无法找到任何匹配的饲料文件。 - Automatically translated. - - - 下载丢失的归档文件、计算清单摘要等。 - Automatically translated. - - - 额外的命令行{ARGUMENTS} ,可传递给由 feed 启动的应用程序。 - Automatically translated. - - - 将所有指定的供稿合并为一个目录{FILE} 。 - Automatically translated. - - - 取代默认目录的目录{URI} 。仅适用于尚未部署零安装的情况。 - Automatically translated. - - - 从安装目录创建 ZIP 文件的{PATH} 。不设置则不创建 ZIP 压缩文件。 - Automatically translated. - - - 将 Zero Install 配置{0:OPTION} 设置为特定的{1:VALUE} 。如果尚未部署 Zero Install,则仅覆盖现有配置文件。 - Automatically translated. - - - {PATH} 目录,其中包含要嵌入引导程序的附加内容。您可以使用 "0install export "生成这样的目录。 - Automatically translated. - - - 用户可选择自定义路径来存储实现。 - Automatically translated. - - - 显示估计所需的磁盘{SPACE} (以字节为单位)。同时隐含设置 --customizable-store-path. - Automatically translated. - - - 覆盖现有文件 - Automatically translated. - - - 使用{PASS} 解锁 GnuPG 密钥。 - Automatically translated. - - - 显示内置帮助文本 - Automatically translated. - - - 要捕获的应用程序安装目录的{PATH} 。不设置则自动检测。 - Automatically translated. - - - 命令行{ARGUMENTS} ,传递给 "0install integrate"。不设置则完全不调用 "0install integrate"。 - Automatically translated. - - - 用于签名的密钥(如果您有多个密钥,或者您想用不同的密钥签名)。 - Automatically translated. - - - 要捕获的应用程序主 EXE 的相对{PATH} 。不设置则自动检测。 - Automatically translated. - - - 选项 - Automatically translated. - - - {URI} 或 boostrap 模板可执行文件的路径。不设置则从默认位置下载。 - Automatically translated. - - - 删除任何现有签名。 - Automatically translated. - - - 显示版本信息。 - Automatically translated. - - - 添加 XML 签名块。(所有远程供稿都必须签名)。 - Automatically translated. - - - 未知操作模式。 -尝试{0} - Automatically translated. - - - 使用方法 - Automatically translated. - - \ No newline at end of file diff --git a/src/Publish.Cli/Publish.Cli.csproj b/src/Publish.Cli/Publish.Cli.csproj deleted file mode 100644 index 7eeda86..0000000 --- a/src/Publish.Cli/Publish.Cli.csproj +++ /dev/null @@ -1,49 +0,0 @@ - - - - - 0publish - ZeroInstall.Publish.Cli - Command-line tool for editing Zero Install feed XMLs. - Exe - ..\..\artifacts\$(Configuration)\ - - - - - - - - - - - - - - - - - - - - - - - Always - - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - - - True - True - Resources.resx - - - - diff --git a/src/Publish.Cli/PublishCommand.cs b/src/Publish.Cli/PublishCommand.cs deleted file mode 100644 index 2bd389a..0000000 --- a/src/Publish.Cli/PublishCommand.cs +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright Bastian Eicher et al. -// Licensed under the GNU Lesser Public License - -using NanoByte.Common.Info; -using NanoByte.Common.Undo; -using Spectre.Console; -using ZeroInstall.Store.Configuration; -using ZeroInstall.Store.Trust; - -namespace ZeroInstall.Publish.Cli; - -/// -/// Creates or modified Zero Install feeds. -/// -public sealed class PublishCommand : ICommand -{ - private readonly ITaskHandler _handler; - - /// The feeds to apply the operation on. - private ICollection _feeds; - - /// - /// Parses command-line arguments. - /// - /// The command-line arguments to be parsed. - /// A callback object used when the the user needs to be asked questions or informed about download and IO tasks. - /// The user asked to see help information, version information, etc.. - /// contains unknown options. - public PublishCommand(IEnumerable args, ITaskHandler handler) - { - _handler = handler ?? throw new ArgumentNullException(nameof(handler)); - - var additionalArgs = BuildOptions().Parse(args ?? throw new ArgumentNullException(nameof(args))); - - try - { - _feeds = Paths.ResolveFiles(additionalArgs, "*.xml"); - } - #region Error handling - catch (FileNotFoundException ex) - { - // Report as an invalid command-line argument - throw new OptionException(ex.Message, ex.FileName); - } - #endregion - } - - #region Options - /// The file to store the aggregated data in. - private string? _catalogFile; - - /// Download missing archives, calculate manifest digests, etc.. - private bool _addMissing; - - /// Add XML signature blocks to the feed. - private bool _xmlSign; - - /// Remove any existing signatures from the feeds. - private bool _unsign; - - /// A key specifier (key ID, fingerprint or any part of a user ID) for the secret key to use to sign the feeds. - private string? _key; - - /// The passphrase used to unlock the . - private string? _openPgpPassphrase; - - private OptionSet BuildOptions() - { - var options = new OptionSet - { - // Version information - { - "V|version", () => Resources.OptionVersion, _ => - { - Console.WriteLine(AppInfo.Current.Name + @" " + AppInfo.Current.Version + Environment.NewLine + AppInfo.Current.Copyright + Environment.NewLine + Resources.LicenseInfo); - throw new OperationCanceledException(); // Don't handle any of the other arguments - } - }, - - // Modes - {"catalog=", () => Resources.OptionCatalog, path => _catalogFile = Path.GetFullPath(path)}, - {"add-missing", () => Resources.OptionAddMissing, _ => _addMissing = true}, - - // Signatures - {"x|xmlsign", () => Resources.OptionXmlSign, _ => _xmlSign = true}, - {"u|unsign", () => Resources.OptionUnsign, _ => _unsign = true}, - {"k|key=", () => Resources.OptionKey, user => _key = user}, - {"gpg-passphrase=", () => Resources.OptionGnuPGPassphrase, passphrase => _openPgpPassphrase = passphrase} - }; - - options.Add("h|help|?", () => Resources.OptionHelp, _ => - { - Console.WriteLine(Resources.Usage); - // ReSharper disable LocalizableElement - Console.WriteLine("\t0publish [OPTIONS] FEED-FILE"); - Console.WriteLine("\t0publish capture --help"); - Console.WriteLine("\t0publish bootstrap --help"); - // ReSharper restore LocalizableElement - Console.WriteLine(); - Console.WriteLine(Resources.Options); - options.WriteOptionDescriptions(Console.Out); - - // Don't handle any of the other arguments - throw new OperationCanceledException(); - }); - - return options; - } - #endregion - - /// - public void Execute() - { - if (!string.IsNullOrEmpty(_catalogFile)) - { - // Default to using all XML files in the current directory - if (_feeds.Count == 0) - _feeds = Paths.ResolveFiles([Environment.CurrentDirectory], "*.xml"); - - GenerateCatalog(); - return; - } - - if (_feeds.Count == 0) - { - throw new OptionException(string.Format(Resources.MissingArguments, "0publish --help"), ""); - } - - foreach (var file in _feeds) - { - var feedEditing = FeedEditing.Load(file.FullName); - var feed = feedEditing.SignedFeed.Feed; - feed.ResolveInternalReferences(); - - if (_addMissing) AddMissing(feed.Implementations, feedEditing); - - SaveFeed(feedEditing); - } - } - - private void GenerateCatalog() - { - var catalog = new Catalog(); - foreach (var feed in _feeds.Select(feedFile => XmlStorage.LoadXml(feedFile.FullName))) - { - feed.Strip(); - catalog.Feeds.Add(feed); - } - - if (catalog.Feeds.Count == 0) throw new FileNotFoundException(Resources.NoFeedFilesFound); - - if (_xmlSign) - { - var openPgp = OpenPgp.Signing(); - var signedCatalog = new SignedCatalog(catalog, openPgp.GetSecretKey(_key)); - - PromptPassphrase( - () => signedCatalog.Save(_catalogFile!, _openPgpPassphrase), - signedCatalog.SecretKey); - } - else catalog.SaveXml(_catalogFile!); - } - - private void AddMissing(IEnumerable implementations, ICommandExecutor executor) - { - executor = new ConcurrentCommandExecutor(executor); - - try - { - implementations.AsParallel() - .WithDegreeOfParallelism(Config.LoadSafe().MaxParallelDownloads) - .ForAll(implementation => implementation.SetMissing(executor, _handler)); - } - catch (AggregateException ex) - { - throw ex.RethrowFirstInner(); - } - } - - private void SaveFeed(FeedEditing feedEditing) - { - if (!feedEditing.Path!.EndsWith(".xml.template") - && !feedEditing.IsValid(out string problem)) - Log.Warn(problem); - - if (_unsign) - { - // Remove any existing signatures - feedEditing.SignedFeed.SecretKey = null; - } - else - { - var openPgp = OpenPgp.Signing(); - if (_xmlSign) - { // Signing explicitly requested - if (feedEditing.SignedFeed.SecretKey == null) - { // No previous signature - // Use user-specified key or default key - feedEditing.SignedFeed.SecretKey = openPgp.GetSecretKey(_key); - } - else - { // Existing signature - if (!string.IsNullOrEmpty(_key)) // Use new user-specified key - feedEditing.SignedFeed.SecretKey = openPgp.GetSecretKey(_key); - //else resign implied - } - } - //else resign implied - } - - // If no signing or unsigning was explicitly requested and the content did not change - // there is no need to overwrite (and potential resign) the file - if (!_xmlSign && !_unsign && !feedEditing.UnsavedChanges) return; - - PromptPassphrase( - () => feedEditing.SignedFeed.Save(feedEditing.Path!, _openPgpPassphrase), - feedEditing.SignedFeed.SecretKey); - } - - /// - /// Runs the specified and prompts for the if is thrown. - /// - /// The user cancelled the passphrase entry. - private void PromptPassphrase(Action action, OpenPgpSecretKey? secretKey) - { - while (true) - { - try - { - action(); - return; // Exit loop if passphrase is correct - } - catch (WrongPassphraseException ex) when (secretKey != null) - { - // Only print error if a passphrase was actually entered - if (_openPgpPassphrase != null) Log.Error(ex); - - // Ask for passphrase to unlock secret key if we were unable to save without it - _openPgpPassphrase = AnsiCli.Prompt(new TextPrompt(string.Format(Resources.AskForPassphrase, secretKey.UserID)).Secret(), _handler.CancellationToken); - } - } - } -} diff --git a/src/Publish.Cli/_Namespace.md b/src/Publish.Cli/_Namespace.md deleted file mode 100644 index d243f75..0000000 --- a/src/Publish.Cli/_Namespace.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -uid: ZeroInstall.Publish.Cli -summary: *content ---- -A command-line tool for editing Zero Install feeds. diff --git a/src/Publish.WinForms/Controls/_Namespace.md b/src/Publish.WinForms/Controls/_Namespace.md deleted file mode 100644 index 0741df3..0000000 --- a/src/Publish.WinForms/Controls/_Namespace.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -uid: ZeroInstall.Publish.WinForms.Controls -summary: *content ---- -WinForms controls for manipulating data stored within a feed. diff --git a/src/Publish.WinForms/_Namespace.md b/src/Publish.WinForms/_Namespace.md deleted file mode 100644 index b760e40..0000000 --- a/src/Publish.WinForms/_Namespace.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -uid: ZeroInstall.Publish.WinForms -summary: *content ---- -A WinForms-based editor for Zero Install feeds. diff --git a/src/Publish.WinForms/Resources/NewButton.png b/src/Resources/NewButton.png similarity index 100% rename from src/Publish.WinForms/Resources/NewButton.png rename to src/Resources/NewButton.png diff --git a/src/Publish.WinForms/Resources/NewWizardButton.png b/src/Resources/NewWizardButton.png similarity index 100% rename from src/Publish.WinForms/Resources/NewWizardButton.png rename to src/Resources/NewWizardButton.png diff --git a/src/Publish.WinForms/Resources/OpenButton.png b/src/Resources/OpenButton.png similarity index 100% rename from src/Publish.WinForms/Resources/OpenButton.png rename to src/Resources/OpenButton.png diff --git a/src/Publish.WinForms/Resources/RedoButton.png b/src/Resources/RedoButton.png similarity index 100% rename from src/Publish.WinForms/Resources/RedoButton.png rename to src/Resources/RedoButton.png diff --git a/src/Publish.WinForms/Resources/SaveButton.png b/src/Resources/SaveButton.png similarity index 100% rename from src/Publish.WinForms/Resources/SaveButton.png rename to src/Resources/SaveButton.png diff --git a/src/Publish.WinForms/Resources/UndoButton.png b/src/Resources/UndoButton.png similarity index 100% rename from src/Publish.WinForms/Resources/UndoButton.png rename to src/Resources/UndoButton.png diff --git a/src/Publish.WinForms/WelcomeForm.Designer.cs b/src/WelcomeForm.Designer.cs similarity index 100% rename from src/Publish.WinForms/WelcomeForm.Designer.cs rename to src/WelcomeForm.Designer.cs diff --git a/src/Publish.WinForms/WelcomeForm.cs b/src/WelcomeForm.cs similarity index 100% rename from src/Publish.WinForms/WelcomeForm.cs rename to src/WelcomeForm.cs diff --git a/src/Publish.WinForms/WelcomeForm.resx b/src/WelcomeForm.resx similarity index 100% rename from src/Publish.WinForms/WelcomeForm.resx rename to src/WelcomeForm.resx diff --git a/src/Publish.WinForms/WizardPages/ArchiveExtract.cs b/src/WizardPages/ArchiveExtract.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/ArchiveExtract.cs rename to src/WizardPages/ArchiveExtract.cs diff --git a/src/Publish.WinForms/WizardPages/Details.cs b/src/WizardPages/Details.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/Details.cs rename to src/WizardPages/Details.cs diff --git a/src/Publish.WinForms/WizardPages/Done.cs b/src/WizardPages/Done.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/Done.cs rename to src/WizardPages/Done.cs diff --git a/src/Publish.WinForms/WizardPages/Download.cs b/src/WizardPages/Download.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/Download.cs rename to src/WizardPages/Download.cs diff --git a/src/Publish.WinForms/WizardPages/EntryPoint.cs b/src/WizardPages/EntryPoint.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/EntryPoint.cs rename to src/WizardPages/EntryPoint.cs diff --git a/src/Publish.WinForms/WizardPages/Icon.cs b/src/WizardPages/Icon.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/Icon.cs rename to src/WizardPages/Icon.cs diff --git a/src/Publish.WinForms/WizardPages/InstallerAltDownload.cs b/src/WizardPages/InstallerAltDownload.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/InstallerAltDownload.cs rename to src/WizardPages/InstallerAltDownload.cs diff --git a/src/Publish.WinForms/WizardPages/InstallerCaptureDiff.cs b/src/WizardPages/InstallerCaptureDiff.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/InstallerCaptureDiff.cs rename to src/WizardPages/InstallerCaptureDiff.cs diff --git a/src/Publish.WinForms/WizardPages/InstallerCaptureStart.cs b/src/WizardPages/InstallerCaptureStart.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/InstallerCaptureStart.cs rename to src/WizardPages/InstallerCaptureStart.cs diff --git a/src/Publish.WinForms/WizardPages/InstallerCollectFiles.cs b/src/WizardPages/InstallerCollectFiles.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/InstallerCollectFiles.cs rename to src/WizardPages/InstallerCollectFiles.cs diff --git a/src/Publish.WinForms/WizardPages/Security.cs b/src/WizardPages/Security.cs similarity index 100% rename from src/Publish.WinForms/WizardPages/Security.cs rename to src/WizardPages/Security.cs diff --git a/src/Publish.WinForms/Publish.WinForms.csproj b/src/ZeroInstall.Publish.WinForms.csproj similarity index 55% rename from src/Publish.WinForms/Publish.WinForms.csproj rename to src/ZeroInstall.Publish.WinForms.csproj index 26de51b..e703ae9 100644 --- a/src/Publish.WinForms/Publish.WinForms.csproj +++ b/src/ZeroInstall.Publish.WinForms.csproj @@ -1,13 +1,32 @@  - - 0publish-win - ZeroInstall.Publish.WinForms - WinForms-based editor for Zero Install feed XMLs. + + 12.0 + net472 + enable + annotations + False + True + True + $(NoWarn);1591 + es;el;fr;it;ja;nl;pt-BR;pt-PT;ro;ru;tr;zh;zh-Hant + + + 0publish-gui + app.manifest + ..\icon.ico WinExe - ..\..\artifacts\$(Configuration)\ + ..\artifacts\$(Configuration)\ True + + + GUI editor for Zero Install feeds. + Copyright Bastian Eicher et al. + https://github.com/0install/0publish-gui-dotnet + + + 1.0.0-pre ERROR_REPORT @@ -15,23 +34,27 @@ + + + + + + - - - - + + - + Always diff --git a/src/Publish.WinForms/Publish.WinForms.csproj.DotSettings b/src/ZeroInstall.Publish.WinForms.csproj.DotSettings similarity index 100% rename from src/Publish.WinForms/Publish.WinForms.csproj.DotSettings rename to src/ZeroInstall.Publish.WinForms.csproj.DotSettings diff --git a/src/ZeroInstall.Publish.WinForms.sln b/src/ZeroInstall.Publish.WinForms.sln new file mode 100644 index 0000000..b6ac31d --- /dev/null +++ b/src/ZeroInstall.Publish.WinForms.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.12 +MinimumVisualStudioVersion = 14.0.23107.0 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZeroInstall.Publish.WinForms", "ZeroInstall.Publish.WinForms.csproj", "{50B1586B-040A-4805-AC05-1C77721EF4BD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {50B1586B-040A-4805-AC05-1C77721EF4BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50B1586B-040A-4805-AC05-1C77721EF4BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50B1586B-040A-4805-AC05-1C77721EF4BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50B1586B-040A-4805-AC05-1C77721EF4BD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/ZeroInstall.Tools.sln.DotSettings b/src/ZeroInstall.Publish.WinForms.sln.DotSettings similarity index 100% rename from src/ZeroInstall.Tools.sln.DotSettings rename to src/ZeroInstall.Publish.WinForms.sln.DotSettings diff --git a/src/ZeroInstall.Tools.sln b/src/ZeroInstall.Tools.sln deleted file mode 100644 index 64c9c68..0000000 --- a/src/ZeroInstall.Tools.sln +++ /dev/null @@ -1,35 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.12 -MinimumVisualStudioVersion = 14.0.23107.0 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Publish.WinForms", "Publish.WinForms\Publish.WinForms.csproj", "{50B1586B-040A-4805-AC05-1C77721EF4BD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Publish.Cli", "Publish.Cli\Publish.Cli.csproj", "{4B66C00D-75B5-4535-985D-466042A09A84}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{DA177B68-C117-4A16-9EF8-D9CBD62B2067}" -ProjectSection(SolutionItems) = preProject - Directory.Build.props = Directory.Build.props - app.manifest = app.manifest - nuget.config = nuget.config -EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {50B1586B-040A-4805-AC05-1C77721EF4BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50B1586B-040A-4805-AC05-1C77721EF4BD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50B1586B-040A-4805-AC05-1C77721EF4BD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50B1586B-040A-4805-AC05-1C77721EF4BD}.Release|Any CPU.Build.0 = Release|Any CPU - {4B66C00D-75B5-4535-985D-466042A09A84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B66C00D-75B5-4535-985D-466042A09A84}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B66C00D-75B5-4535-985D-466042A09A84}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B66C00D-75B5-4535-985D-466042A09A84}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/build.ps1 b/src/build.ps1 index 4bde99a..fdd836b 100644 --- a/src/build.ps1 +++ b/src/build.ps1 @@ -18,7 +18,7 @@ function Run-MSBuild { # Build if ($env:CI) { $ci = "/p:ContinuousIntegrationBuild=True" } -Run-MSBuild /v:Quiet /t:Restore /t:Build $ci /p:Configuration=Release /p:Version=$Version -Remove-Item ..\artifacts\Release\net472\* -Include *.xml,*.pdb +Run-MSBuild /v:Quiet /t:Restore /t:Build $ci /p:Configuration=Release /p:Version=$Version ZeroInstall.Publish.WinForms.sln +Remove-Item ..\artifacts\Release\net472 -Recurse -Include *.xml,*.pdb,Microsoft.CodeAnalysis* popd