{"version":3,"sources":["../src/linuxPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, AsyncTaskManager, log } from \"builder-util\"\nimport sanitizeFileName from \"sanitize-filename\"\nimport { DIR_TARGET, Platform, Target, TargetSpecificOptions } from \"./core\"\nimport { LinuxConfiguration } from \"./options/linuxOptions\"\nimport { Packager } from \"./packager\"\nimport { PlatformPackager } from \"./platformPackager\"\nimport { RemoteBuilder } from \"./remoteBuilder/RemoteBuilder\"\nimport AppImageTarget from \"./targets/AppImageTarget\"\nimport FpmTarget from \"./targets/fpm\"\nimport { LinuxTargetHelper } from \"./targets/LinuxTargetHelper\"\nimport SnapTarget from \"./targets/snap\"\nimport { createCommonTarget } from \"./targets/targetFactory\"\n\nexport class LinuxPackager extends PlatformPackager {\n readonly executableName: string\n\n constructor(info: Packager) {\n super(info, Platform.LINUX)\n\n const executableName = this.platformSpecificBuildOptions.executableName\n this.executableName = executableName == null ? this.appInfo.sanitizedName.toLowerCase() : sanitizeFileName(executableName)\n }\n\n get defaultTarget(): Array {\n return [\"snap\", \"appimage\"]\n }\n\n createTargets(targets: Array, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n let helper: LinuxTargetHelper | null\n const getHelper = () => {\n if (helper == null) {\n helper = new LinuxTargetHelper(this)\n }\n return helper\n }\n\n let remoteBuilder: RemoteBuilder | null = null\n\n for (const name of targets) {\n if (name === DIR_TARGET) {\n continue\n }\n\n const targetClass: typeof AppImageTarget | typeof SnapTarget | typeof FpmTarget | null = (() => {\n switch (name) {\n case \"appimage\":\n return require(\"./targets/AppImageTarget\").default\n case \"snap\":\n return require(\"./targets/snap\").default\n case \"deb\":\n case \"rpm\":\n case \"sh\":\n case \"freebsd\":\n case \"pacman\":\n case \"apk\":\n case \"p5p\":\n return require(\"./targets/fpm\").default\n default:\n return null\n }\n })()\n\n mapper(name, outDir => {\n if (targetClass === null) {\n return createCommonTarget(name, outDir, this)\n }\n\n const target = new targetClass(name, this, getHelper(), outDir)\n if (process.platform === \"win32\" || process.env._REMOTE_BUILD) {\n if (remoteBuilder == null) {\n remoteBuilder = new RemoteBuilder(this)\n }\n // return remoteBuilder.buildTarget(this, arch, appOutDir, this.packager)\n return new RemoteTarget(target, remoteBuilder)\n }\n return target\n })\n }\n }\n}\n\nclass RemoteTarget extends Target {\n private buildTaskManager = new AsyncTaskManager(this.remoteBuilder.packager.info.cancellationToken)\n\n get options(): TargetSpecificOptions | null | undefined {\n return this.target.options\n }\n\n get outDir(): string {\n return this.target.outDir\n }\n\n constructor(private readonly target: Target, private readonly remoteBuilder: RemoteBuilder) {\n super(target.name, true /* all must be scheduled in time (so, on finishBuild RemoteBuilder will have all targets added - so, we must set isAsyncSupported to true (resolved promise is returned)) */)\n }\n\n async finishBuild() {\n await this.buildTaskManager.awaitTasks()\n await this.remoteBuilder.build()\n }\n\n build(appOutDir: string, arch: Arch) {\n const promise = this.doBuild(appOutDir, arch)\n this.buildTaskManager.addTask(promise)\n return promise\n }\n\n private async doBuild(appOutDir: string, arch: Arch) {\n log.info({target: this.target.name, arch: Arch[arch]}, \"scheduling remote build\")\n await this.target.checkOptions()\n this.remoteBuilder.scheduleBuild(this.target, arch, appOutDir)\n }\n}\n\nexport function toAppImageOrSnapArch(arch: Arch): string {\n switch (arch) {\n case Arch.x64:\n return \"x86_64\"\n case Arch.ia32:\n return \"i386\"\n case Arch.armv7l:\n return \"arm\"\n case Arch.arm64:\n return \"arm_aarch64\"\n\n default:\n throw new Error(`Unsupported arch ${arch}`)\n }\n}"],"sourceRoot":""}