Interface MNativePackagerServiceType

All Known Implementing Classes:
MNPackagerAbstract, MNPackagerAppImage, MNPackagerDeb, MNPackagerFlatpak, MNPackagerMSI, MNPackagerShell

public interface MNativePackagerServiceType
A service capable of producing a native package.
  • Method Details

    • name

      com.io7m.lanark.core.RDottedName name()
      Returns:
      The name of the packager
    • describe

      String describe()
      Returns:
      A description of the service
    • unsupportedReason

      Optional<com.io7m.seltzer.api.SStructuredErrorType<String>> unsupportedReason(Optional<MPackageDeclaration> packageV) throws InterruptedException
      Determine if the service can run on the current platform, and return the reason why it cannot (if it cannot). Some services are unable to run outside specific platforms. For example, producing Windows MSI installers is limited to Windows platforms due to the requirement to run the Windows-only WiX toolkit.
      Parameters:
      packageV - The package declaration
      Returns:
      The reason that this service is unsupported
      Throws:
      InterruptedException - On interruption
    • execute

      Path execute(MNativeWorkspaceType workspace, MPackageReaderType packageV) throws MException
      Execute the packaging service.
      Parameters:
      workspace - The workspace
      packageV - The package
      Returns:
      The output file
      Throws:
      MException - On errors