lgoad-upload-action/index.js
Kodi Craft be8432c7dd
All checks were successful
/ Upload and download test (push) Successful in 24s
Tweaks and error handling
2024-06-15 11:57:26 +02:00

63 lines
2.0 KiB
JavaScript

//@ts-check
import core from '@actions/core'
import github from '@actions/github'
import os from 'os'
import fs from 'fs'
import mime from 'mime'
import path from 'path'
try {
const file = core.getInput('file')
if (!file) {
core.setFailed('"file" is required')
process.exit(1)
}
const token = core.getInput('token')
if (!token) {
core.setFailed('"token" is required')
process.exit(1)
}
const machine_name = core.getInput('custom-machine-name') || os.hostname()
const custom_name = core.getInput('custom-name') || path.basename(file)
const mime_type = core.getInput('content-type') || mime.getType(file) || 'data/raw'
const use_salt = core.getInput('use-salt') === 'true'
console.log("Uploading file: ", file)
console.log("Name: ", custom_name)
console.log("Machine name: ", machine_name)
console.log("Content type: ", mime_type)
console.log("Use salt: ", use_salt)
const fileContent = fs.readFileSync(file)
await fetch('https://lgoaduploader.rphsw.workers.dev/',
{
method: 'POST',
body: fileContent,
headers: {
'Content-Type': mime_type,
'x-machine-name': machine_name,
'x-custom-name': custom_name,
'x-salt-name': use_salt ? 'true' : 'false',
'authorization': `Bearer ${token}`
}
}).then(response => {
if (!response.ok) {
console.log("Got response: ", response)
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.text()
})
.then(uri => {
console.log("Uploaded to: ", uri)
core.setOutput('uri', uri)
const url = "https://free.estrogen.download/" + uri
console.log("Usable URL: ", url)
core.setOutput('url', url)
}).then(() => {
console.log("Done!")
})
} catch (err) {
core.setFailed(err.message)
}