public static void DoTheChrootBash(Pogo pogo) { Mono.Unix.Native.Syscall.chroot(pogo.Box.Merged.Full); var bash = new Bash() .Command($"bash") .Directory("/root") .Interactive() .Run(); }
static int Main(string[] args) { // https://github.com/landley/mkroot // https://wiki.musl-libc.org/projects-using-musl.html // http://www.dragora.org/repo.fsl/doc/trunk/www/index.md // toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc Pogo = new Pogo(); foreach (var arg in args) { if (arg == ChrootIntro) { Bash.DoTheChrootBash(Pogo); return(127); } } Terminal.Write("reading recipes ... "); var morphs = Morphs.Morphs.Populate( Pogo, IsLinux ? "/root/McMorph/McMorph.Morph/Repository" : ((PathName)Environment.CurrentDirectory) / "McMorph.Morph/Repository"); Terminal.ClearLine(); morphs.Download(false); morphs.Extract(false); Pogo.Box.Mount(true); #if false //Console.Write("any key ..."); //Console.ReadKey(true); //Console.WriteLine(); #endif return(0); }