patches and low-level development discussion
 help / color / mirror / code / Atom feed
blob f2fe7bc246b75ad4eb2d10613db250787a58046d 966 bytes (raw)
name: host/rootfs/image/usr/bin/run-appimage 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
#!/bin/execlineb -S1
# SPDX-License-Identifier: EUPL-1.2+
# SPDX-FileCopyrightText: 2024-2025 Alyssa Ross <hi@alyssa.is>

backtick -E dir { mktemp -d /run/vm/by-id/XXXXXX }
backtick -E id { basename -- $dir }

if { mkdir -p /run/configs/${id}/fs }

if {
  ln -s /usr/lib/spectrum/img/appvm/blk /usr/lib/spectrum/img/appvm/vmlinux
    /run/configs/${id}
}

if { ln -s /run/configs/${id} ${dir}/config }

if { create-vm-dependencies $id }

if {
  nsenter --mount=${dir}/mount
  cd ${dir}/fs/config
  if { redirfd -w 1 type echo appimage }
  if { touch run }
  mount --bind $1 run
}

piperw 4 3
background {
  fdclose 3
  fdmove 0 4

  # Wait for the VMM to be up, then start the VM.
  if { redirfd -w 1 /dev/null head -1 }
  vm-start $id
}
fdclose 4

foreground { run-vmm $id }
fdclose 3

if { s6-instance-delete /run/service/vm-services $id }

if { umount ${dir}/mount } # mount namespace
if { umount ${dir}/mount } # private bind mount
rm -r $dir /run/configs/${id}

debug log:

solving f2fe7bc2 ...
found f2fe7bc2 in https://spectrum-os.org/git/spectrum

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).