diff --git a/index.html b/index.html index 08f62e9..7f7074c 100644 --- a/index.html +++ b/index.html @@ -263,18 +263,20 @@ __ __ _ __ ____ __ } //Actual CheerpX and bash specific logic - function runBash() + async function runBash() { // cmd, cwd, args and env are replaced by the Github actions workflow. var cmd = CMD; var args = ARGS; var env = ENV; var cwd = CWD; + var device_type = DEVICE_TYPE; // Reasonable defaults for local deployments // var cmd = "/bin/bash"; // var args = ["--login"]; // var env = ["HOME=/home/user", "TERM=xterm", "USER=user", "SHELL=/bin/bash", "EDITOR=vim", "LANG=en_US.UTF-8", "LC_ALL=C"]; // var cwd = "/home/user"; + // var device_type = "bytes"; const structure = { cmd: cmd, args: args, @@ -337,7 +339,26 @@ __ __ _ __ ____ __ printOnTerm.printError(printOnTerm.getErrorMessage(err)); } // The device url and type are replaced by Github Actions. - CheerpXApp.create({devices:[{type:DEVICE_TYPE,url:IMAGE_URL,name:"block1"}],mounts:[{type:"ext2",dev:"block1",path:"/"},{type:"cheerpOS",dev:"/app",path:"/app"},{type:"cheerpOS",dev:"/str",path:"/data"},{type:"devs",dev:"",path:"/dev"},{type:"proc",dev:"",path:"/proc"}], networkInterface: networkInterface}).then(runTest, failCallback); + var blockDevice; + switch (device_type) + { + case "block": + blockDevice = await CheerpX.CloudDevice.create(IMAGE_URL); + break; + case "bytes": + blockDevice = await CheerpX.HttpBytesDevice.create(IMAGE_URL); + break; + case "split": + blockDevice = await CheerpX.GitHubDevice.create(IMAGE_URL); + break; + default: + console.log("Unrecognized device type"); + return; + } + var overlayDevice = await CheerpX.OverlayDevice.create(blockDevice, await CheerpX.IDBDevice.create("block1")); + var webDevice = await CheerpX.WebDevice.create(""); + var dataDevice = await CheerpX.DataDevice.create(); + CheerpX.Linux.create({mounts:[{type:"ext2",dev:overlayDevice,path:"/"},{type:"tree",dev:webDevice,path:"/app"},{type:"tree",dev:dataDevice,path:"/data"},{type:"devs",path:"/dev"},{type:"proc",path:"/proc"}], networkInterface: networkInterface}).then(runTest, failCallback); } function initialMessage() {