save <file> => download <file>

This commit is contained in:
Leon van Kammen 2025-04-09 20:44:02 +02:00
parent a918280211
commit 5f5c2d94ce
3 changed files with 44 additions and 39 deletions

View file

@ -0,0 +1,42 @@
#!/bin/sh
source /etc/profile.sh
file(){
javascript='
filename="'$(pwd)/$1'"
res = ""
function saveUint8Array(uint8Array, filename = "download.bin", mimeType = "application/octet-stream") {
if( !uint8Array ){
console.log( res = "file not found" )
return false
}
const blob = new Blob([uint8Array], { type: mimeType });
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = filename.replace(/.*\//,"");
// Programmatically trigger the click event
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
// Clean up the URL object
URL.revokeObjectURL(url);
}
let term = document.querySelector("[isoterminal]")
term.emit("read_file", [filename, (str,buf) => saveUint8Array(buf, filename) ] )
return res
'
hook save
js "$javascript"
exit
}
test -n "$1" && file "$1"
echo "Usage: download [file] # pass no argument to save VM state to localStorage"

View file

@ -16,43 +16,6 @@ state(){
exit
}
file(){
javascript='
filename="'$(pwd)/$1'"
res = ""
function saveUint8Array(uint8Array, filename = "download.bin", mimeType = "application/octet-stream") {
if( !uint8Array ){
console.log( res = "file not found" )
return false
}
const blob = new Blob([uint8Array], { type: mimeType });
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = filename.replace(/.*\//,"");
// Programmatically trigger the click event
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
// Clean up the URL object
URL.revokeObjectURL(url);
}
let term = document.querySelector("[isoterminal]")
term.emit("read_file", [filename, (str,buf) => saveUint8Array(buf, filename) ] )
return res
'
hook save
js "$javascript"
exit
}
test -z "$1" && state
test -n "$1" && file "$1"
echo "Usage: save [file] # pass no argument to save VM state to localStorage"
echo "Usage: save"
echo "it saves VM state to localStorage"

BIN
dist/v86-linux.iso vendored

Binary file not shown.