mirror of
https://github.com/yuzu-emu/liftinstall.git
synced 2024-11-29 15:04:24 +01:00
68109894f1
* platform: fix build on Linux and update web-view * deps: replace xz-decom with xz2 and update deps * platform: fix regression... ... that prevents the build on Windows * linux: implement platform-dependent functions * travis: add macos and windows CI * travis: use official Rust Docker image * Update Cargo.lock for new version * Break apart REST into separate services This cleans up locking, ensures consistent futures for all endpoints and enhances code re-use. * Clean up codebase, fixing minor errors * Update packages, use async client for downloading config While this has a hell of a lot more boilerplate, this is quite a bit cleaner. * Add explicit 'dyn's as per Rust nightly requirements * Migrate self updating functions to own module * Migrate assets to server module * Use patched web-view to fix dialogs, remove nfd * Implement basic dark mode * Revert window.close usage * ui: split files and use Webpack * frontend: ui: include prebuilt assets... ... and update rust side stuff * build: integrate webpack building into build.rs * Polish Vue UI split * Add instructions for node + yarn * native: fix uninstall self-destruction behavior...... by not showing the command prompt window and fork-spawning the cmd * native: deal with Unicode issues in native APIs * native: further improve Unicode support on Windows * travis: add cache and fix issues * ui: use Buefy components to... ... beautify the UI * ui: makes error message selectable * Make launcher mode behaviour more robust * Fix error display on launcher pages * Correctly handle exit on error * Bump installer version
96 lines
2.2 KiB
JavaScript
96 lines
2.2 KiB
JavaScript
'use strict'
|
|
|
|
const express = require('express')
|
|
const app = express()
|
|
const port = 3000
|
|
|
|
function progressSimulation (res) {
|
|
var progress = 0.0
|
|
var timer = setInterval(() => {
|
|
var resp = JSON.stringify({ Status: ['Processing...', progress] }) + '\n'
|
|
progress += 0.1
|
|
res.write(resp)
|
|
if (progress >= 1) {
|
|
res.status(200).end()
|
|
clearInterval(timer)
|
|
}
|
|
}, 1500)
|
|
}
|
|
|
|
function returnConfig (res) {
|
|
res.json({
|
|
installing_message:
|
|
'Test Banner <strong>Bold</strong> <pre>Code block</pre> <i>Italic</i> <del>Strike</del>',
|
|
new_tool: null,
|
|
packages: [
|
|
{
|
|
name: 'Test 1',
|
|
description: 'LiftInstall GUI Test 1',
|
|
default: true,
|
|
source: {
|
|
name: 'github',
|
|
match: '^test$',
|
|
config: { repo: 'j-selby/liftinstall' }
|
|
},
|
|
shortcuts: []
|
|
},
|
|
{
|
|
name: 'Test 2',
|
|
description:
|
|
'Different Banner <strong>Bold</strong> <pre>Code block</pre> <i>Italic</i> <del>Strike</del>',
|
|
default: null,
|
|
source: {
|
|
name: 'github',
|
|
match: '^test2$',
|
|
config: { repo: 'j-selby/liftinstall' }
|
|
},
|
|
shortcuts: []
|
|
}
|
|
],
|
|
hide_advanced: false
|
|
})
|
|
}
|
|
|
|
app.get('/api/attrs', (req, res) => {
|
|
res.send(
|
|
`var base_attributes = {"name":"yuzu","target_url":"https://raw.githubusercontent.com/j-selby/test-installer/master/config.linux.v2.toml"};`
|
|
)
|
|
})
|
|
|
|
app.get('/api/dark-mode', (req, res) => {
|
|
res.json(false)
|
|
})
|
|
|
|
app.get('/api/installation-status', (req, res) => {
|
|
res.json({
|
|
database: { packages: [], shortcuts: [] },
|
|
install_path: null,
|
|
preexisting_install: false,
|
|
is_launcher: false,
|
|
launcher_path: null
|
|
})
|
|
})
|
|
|
|
app.get('/api/default-path', (req, res) => {
|
|
res.json({ path: '/tmp/test/' })
|
|
})
|
|
|
|
app.get('/api/config', (req, res) => {
|
|
setTimeout(() => {
|
|
returnConfig(res)
|
|
}, 3000)
|
|
})
|
|
|
|
app.post('/api/start-install', (req, res) => {
|
|
console.log(`-- Install: ${req.body}`)
|
|
progressSimulation(res)
|
|
})
|
|
|
|
app.get('/api/exit', (req, res) => {
|
|
console.log('-- Exit')
|
|
res.status(204)
|
|
})
|
|
|
|
console.log(`Listening on ${port}...`)
|
|
app.listen(port)
|