diff options
Diffstat (limited to 'src/Wrapper.hs')
-rw-r--r-- | src/Wrapper.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Wrapper.hs b/src/Wrapper.hs new file mode 100644 index 0000000..c97d242 --- /dev/null +++ b/src/Wrapper.hs @@ -0,0 +1,25 @@ +module Main where + +import System.Environment +import System.FilePath +import System.Linux.Namespaces +import System.Posix.Process +import System.Posix.User +import System.Process + +main :: IO () +main = do + -- we must get uid/gid before unshare + uid <- getEffectiveUserID + gid <- getEffectiveGroupID + + unshare [User, Network, Mount] + writeUserMappings Nothing [UserMapping 0 uid 1] + writeGroupMappings Nothing [GroupMapping 0 gid 1] True + + -- needed for creating /run/netns + callCommand "mount -t tmpfs tmpfs /run" + + path <- getExecutablePath + args <- getArgs + executeFile (takeDirectory path </> "../../../erebos-tester-core/build/erebos-tester-core/erebos-tester-core") False args Nothing |