@mussonindustrial/pyro-mui-joy
Version:
A port of Material UI Joy Theme for Ignition by Inductive Automation
78 lines (67 loc) • 2.17 kB
JavaScript
var fs = require('fs')
var path = require('path')
var { glob } = require('glob')
var axios = require('axios')
import { getWebdevClient } from './setup'
const fontDir = path.join('output', 'fonts')
const themeDir = path.join('output', 'themes')
async function uploadResource(gateway, resource_type, path, file_buffer) {
const client = await getWebdevClient(gateway)
await client.post(
`${resource_type}${path}`,
file_buffer,
{
headers: {
'Content-Type': 'multipart/form-data',
},
}
).catch(function (error) {
console.log({error})
})
return true
}
async function uploadThemes(gateway) {
console.log('uploading themes')
const files = await glob('output/themes/**/*.*')
for (const f of files) {
const buffer = fs.readFileSync(f)
const name = f.replace(themeDir, '').replaceAll('\\', '/')
console.log({theme: name})
await uploadResource(gateway, 'themes', name, buffer)
}
return true
}
async function uploadFonts(gateway) {
console.log('uploading fonts')
const files = await glob('output/fonts/**/*.*')
console.log(files)
for (const f of files) {
const buffer = fs.readFileSync(f)
const name = f.replace(fontDir, '').replaceAll('\\', '/')
console.log({font: name})
await uploadResource(gateway, 'fonts', name, buffer)
}
return true
}
async function uploadProjectImport(gateway) {
console.log('uploading project import')
const buffer = fs.readFileSync('output/project-import.zip')
console.log({project: buffer})
await uploadResource(gateway, 'projectImport', '/project-import.zip', buffer)
return true
}
function delay(time) {
return new Promise(function(resolve) {
setTimeout(resolve, time)
});
}
async function requestScan(gateway) {
console.log('requesting project scan')
const client = await getWebdevClient(gateway)
await client.get(
'/requestScan'
)
await delay(10000)
return true
}
module.exports = { uploadResource, uploadProjectImport, uploadFonts, uploadThemes, requestScan }