import * as core from "@actions/core"; import * as tc from "@actions/tool-cache"; import * as io from "@actions/io"; import getOS from "./get-os"; import getURL from "./get-url"; export default async function installer(version: string) { try { const extended: string = core.getInput("extended"); console.log(`Hugo extended: ${extended}`); const osName: string = getOS(process.platform); console.log(`Operating System: ${osName}`); const hugoURL: string = getURL(osName, extended, version); core.debug(`hugoURL: ${hugoURL}`); const hugoPath: string = `${process.env.HOME}/bin`; await io.mkdirP(hugoPath); core.addPath(hugoPath); // Download and extract Hugo binary const hugoAssets: string = await tc.downloadTool(hugoURL); let hugoBin: string = ""; if (osName === "Windows") { const hugoExtractedFolder: string = await tc.extractZip( hugoAssets, "/tmp" ); hugoBin = `${hugoExtractedFolder}/hugo.exe`; } else { const hugoExtractedFolder: string = await tc.extractTar( hugoAssets, "/tmp" ); hugoBin = `${hugoExtractedFolder}/hugo`; } await io.mv(hugoBin, hugoPath); } catch (error) { core.setFailed(error.message); } }