lgoad-upload-action/index.js

63 lines
2.0 KiB
JavaScript
Raw Normal View History

2024-06-15 11:24:31 +02:00
//@ts-check
import core from '@actions/core'
import github from '@actions/github'
import os from 'os'
import fs from 'fs'
import mime from 'mime'
2024-06-15 11:28:05 +02:00
import path from 'path'
2024-06-15 11:24:31 +02:00
try {
const file = core.getInput('file')
if (!file) {
core.setFailed('"file" is required')
process.exit(1)
2024-06-15 11:24:31 +02:00
}
const token = core.getInput('token')
if (!token) {
core.setFailed('"token" is required')
process.exit(1)
2024-06-15 11:24:31 +02:00
}
const machine_name = core.getInput('custom-machine-name') || os.hostname()
2024-06-15 11:28:05 +02:00
const custom_name = core.getInput('custom-name') || path.basename(file)
2024-06-15 11:24:31 +02:00
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)
2024-06-15 11:28:05 +02:00
console.log("Name: ", custom_name)
2024-06-15 11:24:31 +02:00
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,
2024-06-15 11:28:05 +02:00
'x-custom-name': custom_name,
2024-06-15 11:24:31 +02:00
'x-salt-name': use_salt ? 'true' : 'false',
'authorization': `Bearer ${token}`
}
2024-06-15 11:57:26 +02:00
}).then(response => {
if (!response.ok) {
console.log("Got response: ", response)
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.text()
})
2024-06-15 11:24:31 +02:00
.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)
}