hbs2/hbs2-tests/integrational/migrate-simple.ss

59 lines
1.4 KiB
Scheme

(import ./hbs2-tests/integrational/tmux-env.ss)
(local image /home/dmz/backup/peer.hbs2.net/hbs2.squashfs)
(local lo-device [head [flatten [call:proc sudo losetup --show -fP image]]])
(local mount-point (sys:temp:dir))
println mount-point
(println "LOOP" space lo-device)
(println "mounted" space image space "at" space mount-point)
(local overlay-root (sys:temp:dir))
(local overlay-upper (sym (join :/ overlay-root :upper)))
(local overlay-work (sym (join :/ overlay-root :work)))
(local overlay-merged (sym (join :/ overlay-root :merged)))
(mkdir overlay-upper)
(mkdir overlay-work)
(mkdir overlay-merged)
(call:proc sudo mount -t squashfs -o ro lo-device mount-point)
(local mountopts
(sym (concat :lowerdir= mount-point
chr:comma
:upperdir= overlay-upper
chr:comma
:workdir= overlay-work
))
)
(println mountopts)
(call:proc:raw sudo mount -t overlay overlay -o mountopts overlay-merged)
(define *nspawn-extra-args
`[ ,(nbind (join :/ overlay-merged blocks)
/root/.local/share/hbs2/blocks)
,(nbind (join :/ overlay-merged refs)
/root/.local/share/hbs2/refs)
])
(println *nspawn-extra-args)
(run-shell)
(call:proc sudo umount overlay-merged)
(call:proc sudo umount mount-point)
(call:proc sudo losetup -d lo-device)
(call:proc sudo :rm -rf overlay-merged overlay-work overlay-root mount-point)