This is an example script of how to host VDI / VMDK (VirtualBox images) directly over PXE (Network boot).
Example relies on LTSP.
Can be any distro, but requires ltsp-client-core, example with Debian:
sudo apt-get -y install ltsp-client-core
import no.eirikb.gutsu.Gutsu | |
class DataDesk { | |
fun sendMessage(text: String) { | |
println("${hashCode()}: Sending message: $text") | |
} | |
} | |
class PumpView(private val pumpService: PumpService) { | |
init { |
use async_std::io; | |
use async_std::net::{TcpListener, TcpStream}; | |
use async_std::prelude::*; | |
use async_std::task; | |
use futures::{AsyncReadExt, future}; | |
async fn in_to_out(incoming: TcpStream, outgoing: TcpStream) { | |
let (incoming_reader, incoming_writer) = &mut (&incoming, &incoming); | |
let (outgoing_reader, outgoing_writer) = &mut (&outgoing, &outgoing); |
FROM base/archlinux | |
RUN pacman -Syu | |
RUN pacman -S --noconfirm git base-devel | |
WORKDIR /build | |
RUN useradd -d /build build-user | |
RUN echo "build-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers | |
RUN chown -R build-user /build |
<!DOCTYPE html> | |
<body> | |
<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.2/js/msal.min.js"></script> | |
<script> | |
const azureAdAppClientId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; | |
const sharePointUrl = 'https://xxxxxx.sharepoint.com'; | |
const config = { | |
auth: {clientId: azureAdAppClientId}, | |
cache: {cacheLocation: 'localStorage'} |
<!DOCTYPE html> | |
<body> | |
<script src="https://unpkg.com/@eirikb/domdom@1.0.7"></script> | |
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> | |
<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.2/js/msal.min.js"></script> | |
<script type="text/babel"> | |
const azureAdAppClientId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; | |
const sharePointUrl = 'https://xxxxxx.sharepoint.com'; |
<style lang="scss"> | |
@import "~material-design-lite/material.css"; | |
</style> |
import Vue from 'vue'; | |
import Vuex from 'vuex'; | |
Vue.use(Vuex); | |
function teenageAutoMutateTurtles(...props) { | |
return props.reduce((o, p) => (o[`set${p[0].toUpperCase()}${p.slice(1)}`] = (s, v) => s[p] = v) && o, {}); | |
} | |
export default new Vuex.Store({ |
var gulp = require('gulp'); | |
var fs = require('fs'); | |
var browserify = require('browserify'); | |
var babelify = require('babelify'); | |
var watchify = require('watchify'); | |
var source = require('vinyl-source-stream'); | |
var livereload = require('gulp-livereload'); | |
var less = require('gulp-less'); | |
var concat = require('gulp-concat'); | |
var connect = require('gulp-connect'); |
npm install
.npm test
.