diff options
| -rw-r--r-- | config-joey.hs | 2 | ||||
| -rw-r--r-- | doc/README.mdwn | 10 | ||||
| -rw-r--r-- | doc/todo/docker_todo_list.mdwn | 5 | ||||
| -rw-r--r-- | propellor.cabal | 5 | ||||
| -rw-r--r-- | src/Propellor.hs (renamed from Propellor.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Attr.hs (renamed from Propellor/Attr.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/CmdLine.hs (renamed from Propellor/CmdLine.hs) | 31 | ||||
| -rw-r--r-- | src/Propellor/Engine.hs (renamed from Propellor/Engine.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Exception.hs (renamed from Propellor/Exception.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Message.hs (renamed from Propellor/Message.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/PrivData.hs (renamed from Propellor/PrivData.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property.hs (renamed from Propellor/Property.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Apache.hs (renamed from Propellor/Property/Apache.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Apt.hs (renamed from Propellor/Property/Apt.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Cmd.hs (renamed from Propellor/Property/Cmd.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Cron.hs (renamed from Propellor/Property/Cron.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Dns.hs (renamed from Propellor/Property/Dns.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Docker.hs (renamed from Propellor/Property/Docker.hs) | 16 | ||||
| -rw-r--r-- | src/Propellor/Property/Docker/Shim.hs (renamed from Propellor/Property/Docker/Shim.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/File.hs (renamed from Propellor/Property/File.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Git.hs (renamed from Propellor/Property/Git.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Gpg.hs (renamed from Propellor/Property/Gpg.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Hostname.hs (renamed from Propellor/Property/Hostname.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Network.hs (renamed from Propellor/Property/Network.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Obnam.hs (renamed from Propellor/Property/Obnam.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/OpenId.hs (renamed from Propellor/Property/OpenId.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Postfix.hs (renamed from Propellor/Property/Postfix.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Reboot.hs (renamed from Propellor/Property/Reboot.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Scheduled.hs (renamed from Propellor/Property/Scheduled.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Service.hs (renamed from Propellor/Property/Service.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs (renamed from Propellor/Property/SiteSpecific/GitAnnexBuilder.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/SiteSpecific/GitHome.hs (renamed from Propellor/Property/SiteSpecific/GitHome.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/SiteSpecific/JoeySites.hs (renamed from Propellor/Property/SiteSpecific/JoeySites.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Ssh.hs (renamed from Propellor/Property/Ssh.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Sudo.hs (renamed from Propellor/Property/Sudo.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/Tor.hs (renamed from Propellor/Property/Tor.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Property/User.hs (renamed from Propellor/Property/User.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/SimpleSh.hs (renamed from Propellor/SimpleSh.hs) | 10 | ||||
| -rw-r--r-- | src/Propellor/Types.hs (renamed from Propellor/Types.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Types/Attr.hs (renamed from Propellor/Types/Attr.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Types/Dns.hs (renamed from Propellor/Types/Dns.hs) | 0 | ||||
| -rw-r--r-- | src/Propellor/Types/OS.hs (renamed from Propellor/Types/OS.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Applicative.hs (renamed from Utility/Applicative.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Data.hs (renamed from Utility/Data.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Directory.hs (renamed from Utility/Directory.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Env.hs (renamed from Utility/Env.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Exception.hs (renamed from Utility/Exception.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/FileMode.hs (renamed from Utility/FileMode.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/FileSystemEncoding.hs (renamed from Utility/FileSystemEncoding.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/LinuxMkLibs.hs (renamed from Utility/LinuxMkLibs.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Misc.hs (renamed from Utility/Misc.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Monad.hs (renamed from Utility/Monad.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/PartialPrelude.hs (renamed from Utility/PartialPrelude.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Path.hs (renamed from Utility/Path.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/PosixFiles.hs (renamed from Utility/PosixFiles.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Process.hs (renamed from Utility/Process.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/QuickCheck.hs (renamed from Utility/QuickCheck.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/SafeCommand.hs (renamed from Utility/SafeCommand.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Scheduled.hs (renamed from Utility/Scheduled.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/ThreadScheduler.hs (renamed from Utility/ThreadScheduler.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/Tmp.hs (renamed from Utility/Tmp.hs) | 0 | ||||
| -rw-r--r-- | src/Utility/UserInfo.hs (renamed from Utility/UserInfo.hs) | 0 | ||||
| l--------- | src/config.hs | 1 | ||||
| -rw-r--r-- | src/wrapper.hs (renamed from wrapper.hs) | 0 |
64 files changed, 39 insertions, 41 deletions
diff --git a/config-joey.hs b/config-joey.hs index c7c3f3be..769357ce 100644 --- a/config-joey.hs +++ b/config-joey.hs @@ -58,7 +58,7 @@ hosts = -- (o) ` & alias "openid.kitenet.net" & Docker.docked hosts "openid-provider" - `requires` Apt.installed ["ntp"] + `requires` Apt.serviceInstalledRunning "ntp" & alias "ancient.kitenet.net" & Docker.docked hosts "ancient-kitenet" diff --git a/doc/README.mdwn b/doc/README.mdwn index d809a760..71b265f5 100644 --- a/doc/README.mdwn +++ b/doc/README.mdwn @@ -6,7 +6,8 @@ are satisfied. Propellor is configured via a git repository, which typically lives in `~/.propellor/` on your development machine. Propellor clones the repository to each host it manages, in a -[secure](http://propellor.branchable.com/security/) way. +[secure](http://propellor.branchable.com/security/) way. The git repository +contains the full source code to Propellor, along with its config file. Properties are defined using Haskell. Edit `~/.propellor/config.hs` to get started. There is fairly complete @@ -40,11 +41,12 @@ see [configuration for the Haskell newbie](https://propellor.branchable.com/hask `apt-get install propellor` 2. Run propellor for the first time. It will set up a `~/.propellor/` git repository for you. -3. `cd ~/.propellor/`; use git to push the repository to a central +3. If you don't have a gpg private key already, generate one: `gpg --gen-key` +4. Run: `propellor --add-key $KEYID`, which will make propellor trust + your gpg key, and will sign your `~/.propellor` repository using it. +5. `cd ~/.propellor/`; use git to push the repository to a central server (github, or your own git server). Configure that central server as the origin remote of the repository. -4. If you don't have a gpg private key, generate one: `gpg --gen-key` -5. Run: `propellor --add-key $KEYID` 6. Edit `~/.propellor/config.hs`, and add a host you want to manage. You can start by not adding any properties, or only a few. 7. Pick a host and run: `propellor --spin $HOST` diff --git a/doc/todo/docker_todo_list.mdwn b/doc/todo/docker_todo_list.mdwn index 9cb9e4da..65762cff 100644 --- a/doc/todo/docker_todo_list.mdwn +++ b/doc/todo/docker_todo_list.mdwn @@ -6,8 +6,3 @@ need ntp installed for a good date source. * Docking a container in a host should add to the host any cnames that are assigned to the container. -* It seems that provisionContainer sometimes hangs when the container - is already running. This seems likely to be a problem with the simpleSh - socket hack. (I think this was an uncaught exception crashing the - simpleSh server thread, and if so, it's fixed. Waiting some weeks to see, - as this bug rarely occurred..) diff --git a/propellor.cabal b/propellor.cabal index 507a0d4b..55b7eb60 100644 --- a/propellor.cabal +++ b/propellor.cabal @@ -33,9 +33,10 @@ Description: . It is configured using haskell. -Executable propellor +Executable wrapper Main-Is: wrapper.hs GHC-Options: -Wall -threaded + Hs-Source-Dirs: src Build-Depends: MissingH, directory, filepath, base >= 4.5, base < 5, IfElse, process, bytestring, hslogger, unix-compat, ansi-terminal, containers, network, async, time, QuickCheck, mtl, @@ -47,6 +48,7 @@ Executable propellor Executable config Main-Is: config.hs GHC-Options: -Wall -threaded + Hs-Source-Dirs: src Build-Depends: MissingH, directory, filepath, base >= 4.5, base < 5, IfElse, process, bytestring, hslogger, unix-compat, ansi-terminal, containers, network, async, time, QuickCheck, mtl, @@ -57,6 +59,7 @@ Executable config Library GHC-Options: -Wall + Hs-Source-Dirs: src Build-Depends: MissingH, directory, filepath, base >= 4.5, base < 5, IfElse, process, bytestring, hslogger, unix-compat, ansi-terminal, containers, network, async, time, QuickCheck, mtl, diff --git a/Propellor.hs b/src/Propellor.hs index e6312248..e6312248 100644 --- a/Propellor.hs +++ b/src/Propellor.hs diff --git a/Propellor/Attr.hs b/src/Propellor/Attr.hs index 98cfc64d..98cfc64d 100644 --- a/Propellor/Attr.hs +++ b/src/Propellor/Attr.hs diff --git a/Propellor/CmdLine.hs b/src/Propellor/CmdLine.hs index ad04abe6..ab1d7f9e 100644 --- a/Propellor/CmdLine.hs +++ b/src/Propellor/CmdLine.hs @@ -290,17 +290,26 @@ boot attr ps = do mainProperties attr ps addKey :: String -> IO () -addKey keyid = exitBool =<< allM id [ gpg, gitadd, gitcommit ] +addKey keyid = exitBool =<< allM id [ gpg, gitadd, gitconfig, gitcommit ] where - gpg = boolSystem "sh" - [ Param "-c" - , Param $ "gpg --export " ++ keyid ++ " | gpg " ++ - unwords (gpgopts ++ ["--import"]) - ] + gpg = do + createDirectoryIfMissing True privDataDir + boolSystem "sh" + [ Param "-c" + , Param $ "gpg --export " ++ keyid ++ " | gpg " ++ + unwords (gpgopts ++ ["--import"]) + ] gitadd = boolSystem "git" [ Param "add" , File keyring ] + + gitconfig = boolSystem "git" + [ Param "config" + , Param "user.signingkey" + , Param keyid + ] + gitcommit = gitCommit [ File keyring , Param "-m" @@ -340,11 +349,11 @@ checkDebugMode = go =<< getEnv "PROPELLOR_DEBUG" where go (Just s) | s == "1" = do - f <- setFormatter - <$> streamHandler stderr DEBUG - <*> pure (simpleLogFormatter "[$time] $msg") - updateGlobalLogger rootLoggerName $ - setLevel DEBUG . setHandlers [f] + f <- setFormatter + <$> streamHandler stderr DEBUG + <*> pure (simpleLogFormatter "[$time] $msg") + updateGlobalLogger rootLoggerName $ + setLevel DEBUG . setHandlers [f] go _ = noop -- Parameters can be passed to both ssh and scp, to enable a ssh connection diff --git a/Propellor/Engine.hs b/src/Propellor/Engine.hs index 55ce7f77..55ce7f77 100644 --- a/Propellor/Engine.hs +++ b/src/Propellor/Engine.hs diff --git a/Propellor/Exception.hs b/src/Propellor/Exception.hs index f6fd15f1..f6fd15f1 100644 --- a/Propellor/Exception.hs +++ b/src/Propellor/Exception.hs diff --git a/Propellor/Message.hs b/src/Propellor/Message.hs index 780471c3..780471c3 100644 --- a/Propellor/Message.hs +++ b/src/Propellor/Message.hs diff --git a/Propellor/PrivData.hs b/src/Propellor/PrivData.hs index ad2c8d22..ad2c8d22 100644 --- a/Propellor/PrivData.hs +++ b/src/Propellor/PrivData.hs diff --git a/Propellor/Property.hs b/src/Propellor/Property.hs index 24494654..24494654 100644 --- a/Propellor/Property.hs +++ b/src/Propellor/Property.hs diff --git a/Propellor/Property/Apache.hs b/src/Propellor/Property/Apache.hs index cf3e62cc..cf3e62cc 100644 --- a/Propellor/Property/Apache.hs +++ b/src/Propellor/Property/Apache.hs diff --git a/Propellor/Property/Apt.hs b/src/Propellor/Property/Apt.hs index 7329c7a8..7329c7a8 100644 --- a/Propellor/Property/Apt.hs +++ b/src/Propellor/Property/Apt.hs diff --git a/Propellor/Property/Cmd.hs b/src/Propellor/Property/Cmd.hs index bcd08246..bcd08246 100644 --- a/Propellor/Property/Cmd.hs +++ b/src/Propellor/Property/Cmd.hs diff --git a/Propellor/Property/Cron.hs b/src/Propellor/Property/Cron.hs index 5b070eff..5b070eff 100644 --- a/Propellor/Property/Cron.hs +++ b/src/Propellor/Property/Cron.hs diff --git a/Propellor/Property/Dns.hs b/src/Propellor/Property/Dns.hs index 5c3162cb..5c3162cb 100644 --- a/Propellor/Property/Dns.hs +++ b/src/Propellor/Property/Dns.hs diff --git a/Propellor/Property/Docker.hs b/src/Propellor/Property/Docker.hs index 6757c7cc..09d7d6a4 100644 --- a/Propellor/Property/Docker.hs +++ b/src/Propellor/Property/Docker.hs @@ -335,29 +335,19 @@ provisionContainer cid = containerDesc cid $ property "provision" $ liftIO $ do go lastline (v:rest) = case v of StdoutLine s -> do - debug ["stdout: ", show s] maybe noop putStrLn lastline hFlush stdout go (Just s) rest StderrLine s -> do - debug ["stderr: ", show s] maybe noop putStrLn lastline hFlush stdout hPutStrLn stderr s hFlush stderr go Nothing rest - Done -> do - debug ["reached Done"] - ret lastline - go lastline [] = do - debug ["reached end of output"] - ret lastline + Done -> ret lastline + go lastline [] = ret lastline - ret lastline = do - let v = fromMaybe FailedChange $ - readish =<< lastline - debug ["provisionContainer returning", show v] - return v + ret lastline = pure $ fromMaybe FailedChange $ readish =<< lastline stopContainer :: ContainerId -> IO Bool stopContainer cid = boolSystem dockercmd [Param "stop", Param $ fromContainerId cid ] diff --git a/Propellor/Property/Docker/Shim.hs b/src/Propellor/Property/Docker/Shim.hs index c2f35d0c..c2f35d0c 100644 --- a/Propellor/Property/Docker/Shim.hs +++ b/src/Propellor/Property/Docker/Shim.hs diff --git a/Propellor/Property/File.hs b/src/Propellor/Property/File.hs index 0b060177..0b060177 100644 --- a/Propellor/Property/File.hs +++ b/src/Propellor/Property/File.hs diff --git a/Propellor/Property/Git.hs b/src/Propellor/Property/Git.hs index e5df7e48..e5df7e48 100644 --- a/Propellor/Property/Git.hs +++ b/src/Propellor/Property/Git.hs diff --git a/Propellor/Property/Gpg.hs b/src/Propellor/Property/Gpg.hs index 64ea9fea..64ea9fea 100644 --- a/Propellor/Property/Gpg.hs +++ b/src/Propellor/Property/Gpg.hs diff --git a/Propellor/Property/Hostname.hs b/src/Propellor/Property/Hostname.hs index 031abb9d..031abb9d 100644 --- a/Propellor/Property/Hostname.hs +++ b/src/Propellor/Property/Hostname.hs diff --git a/Propellor/Property/Network.hs b/src/Propellor/Property/Network.hs index 6009778a..6009778a 100644 --- a/Propellor/Property/Network.hs +++ b/src/Propellor/Property/Network.hs diff --git a/Propellor/Property/Obnam.hs b/src/Propellor/Property/Obnam.hs index 32374b57..32374b57 100644 --- a/Propellor/Property/Obnam.hs +++ b/src/Propellor/Property/Obnam.hs diff --git a/Propellor/Property/OpenId.hs b/src/Propellor/Property/OpenId.hs index 051d6425..051d6425 100644 --- a/Propellor/Property/OpenId.hs +++ b/src/Propellor/Property/OpenId.hs diff --git a/Propellor/Property/Postfix.hs b/src/Propellor/Property/Postfix.hs index 9fa4a2c3..9fa4a2c3 100644 --- a/Propellor/Property/Postfix.hs +++ b/src/Propellor/Property/Postfix.hs diff --git a/Propellor/Property/Reboot.hs b/src/Propellor/Property/Reboot.hs index 25e53159..25e53159 100644 --- a/Propellor/Property/Reboot.hs +++ b/src/Propellor/Property/Reboot.hs diff --git a/Propellor/Property/Scheduled.hs b/src/Propellor/Property/Scheduled.hs index f2911e50..f2911e50 100644 --- a/Propellor/Property/Scheduled.hs +++ b/src/Propellor/Property/Scheduled.hs diff --git a/Propellor/Property/Service.hs b/src/Propellor/Property/Service.hs index 14e769d0..14e769d0 100644 --- a/Propellor/Property/Service.hs +++ b/src/Propellor/Property/Service.hs diff --git a/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs index 677aa760..677aa760 100644 --- a/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs +++ b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs diff --git a/Propellor/Property/SiteSpecific/GitHome.hs b/src/Propellor/Property/SiteSpecific/GitHome.hs index 6ed02146..6ed02146 100644 --- a/Propellor/Property/SiteSpecific/GitHome.hs +++ b/src/Propellor/Property/SiteSpecific/GitHome.hs diff --git a/Propellor/Property/SiteSpecific/JoeySites.hs b/src/Propellor/Property/SiteSpecific/JoeySites.hs index 28b3dffd..28b3dffd 100644 --- a/Propellor/Property/SiteSpecific/JoeySites.hs +++ b/src/Propellor/Property/SiteSpecific/JoeySites.hs diff --git a/Propellor/Property/Ssh.hs b/src/Propellor/Property/Ssh.hs index a4f87678..a4f87678 100644 --- a/Propellor/Property/Ssh.hs +++ b/src/Propellor/Property/Ssh.hs diff --git a/Propellor/Property/Sudo.hs b/src/Propellor/Property/Sudo.hs index 68b56608..68b56608 100644 --- a/Propellor/Property/Sudo.hs +++ b/src/Propellor/Property/Sudo.hs diff --git a/Propellor/Property/Tor.hs b/src/Propellor/Property/Tor.hs index 78e35c89..78e35c89 100644 --- a/Propellor/Property/Tor.hs +++ b/src/Propellor/Property/Tor.hs diff --git a/Propellor/Property/User.hs b/src/Propellor/Property/User.hs index eef2a57e..eef2a57e 100644 --- a/Propellor/Property/User.hs +++ b/src/Propellor/Property/User.hs diff --git a/Propellor/SimpleSh.hs b/src/Propellor/SimpleSh.hs index d99268d1..7ba30b0e 100644 --- a/Propellor/SimpleSh.hs +++ b/src/Propellor/SimpleSh.hs @@ -6,7 +6,7 @@ module Propellor.SimpleSh where import Network.Socket -import Control.Concurrent.Chan +import Control.Concurrent import Control.Concurrent.Async import System.Process (std_in, std_out, std_err) @@ -31,8 +31,9 @@ simpleSh namedpipe = do listen s 2 forever $ do (client, _addr) <- accept s - h <- socketToHandle client ReadWriteMode - maybe noop (run h) . readish =<< hGetLine h + forkIO $ do + h <- socketToHandle client ReadWriteMode + maybe noop (run h) . readish =<< hGetLine h where run h (Cmd cmd params) = do chan <- newChan @@ -71,16 +72,13 @@ simpleSh namedpipe = do simpleShClient :: FilePath -> String -> [String] -> ([Resp] -> IO a) -> IO a simpleShClient namedpipe cmd params handler = do - debug ["simplesh connecting"] s <- socket AF_UNIX Stream defaultProtocol connect s (SockAddrUnix namedpipe) h <- socketToHandle s ReadWriteMode hPutStrLn h $ show $ Cmd cmd params hFlush h - debug ["simplesh sent command"] resps <- catMaybes . map readish . lines <$> hGetContents h v <- hClose h `after` handler resps - debug ["simplesh processed response"] return v simpleShClientRetry :: Int -> FilePath -> String -> [String] -> ([Resp] -> IO a) -> IO a diff --git a/Propellor/Types.hs b/src/Propellor/Types.hs index 22df9ddb..22df9ddb 100644 --- a/Propellor/Types.hs +++ b/src/Propellor/Types.hs diff --git a/Propellor/Types/Attr.hs b/src/Propellor/Types/Attr.hs index 8b7d3b09..8b7d3b09 100644 --- a/Propellor/Types/Attr.hs +++ b/src/Propellor/Types/Attr.hs diff --git a/Propellor/Types/Dns.hs b/src/Propellor/Types/Dns.hs index ba6a92dd..ba6a92dd 100644 --- a/Propellor/Types/Dns.hs +++ b/src/Propellor/Types/Dns.hs diff --git a/Propellor/Types/OS.hs b/src/Propellor/Types/OS.hs index 23cc8a29..23cc8a29 100644 --- a/Propellor/Types/OS.hs +++ b/src/Propellor/Types/OS.hs diff --git a/Utility/Applicative.hs b/src/Utility/Applicative.hs index fd8944b2..fd8944b2 100644 --- a/Utility/Applicative.hs +++ b/src/Utility/Applicative.hs diff --git a/Utility/Data.hs b/src/Utility/Data.hs index 2df12b36..2df12b36 100644 --- a/Utility/Data.hs +++ b/src/Utility/Data.hs diff --git a/Utility/Directory.hs b/src/Utility/Directory.hs index d92327c0..d92327c0 100644 --- a/Utility/Directory.hs +++ b/src/Utility/Directory.hs diff --git a/Utility/Env.hs b/src/Utility/Env.hs index 6763c24e..6763c24e 100644 --- a/Utility/Env.hs +++ b/src/Utility/Env.hs diff --git a/Utility/Exception.hs b/src/Utility/Exception.hs index 1fecf65d..1fecf65d 100644 --- a/Utility/Exception.hs +++ b/src/Utility/Exception.hs diff --git a/Utility/FileMode.hs b/src/Utility/FileMode.hs index c2ef683a..c2ef683a 100644 --- a/Utility/FileMode.hs +++ b/src/Utility/FileMode.hs diff --git a/Utility/FileSystemEncoding.hs b/src/Utility/FileSystemEncoding.hs index b81fdc53..b81fdc53 100644 --- a/Utility/FileSystemEncoding.hs +++ b/src/Utility/FileSystemEncoding.hs diff --git a/Utility/LinuxMkLibs.hs b/src/Utility/LinuxMkLibs.hs index 1dc4e1ea..1dc4e1ea 100644 --- a/Utility/LinuxMkLibs.hs +++ b/src/Utility/LinuxMkLibs.hs diff --git a/Utility/Misc.hs b/src/Utility/Misc.hs index 949f41e7..949f41e7 100644 --- a/Utility/Misc.hs +++ b/src/Utility/Misc.hs diff --git a/Utility/Monad.hs b/src/Utility/Monad.hs index eba3c428..eba3c428 100644 --- a/Utility/Monad.hs +++ b/src/Utility/Monad.hs diff --git a/Utility/PartialPrelude.hs b/src/Utility/PartialPrelude.hs index 6efa093f..6efa093f 100644 --- a/Utility/PartialPrelude.hs +++ b/src/Utility/PartialPrelude.hs diff --git a/Utility/Path.hs b/src/Utility/Path.hs index 99c9438b..99c9438b 100644 --- a/Utility/Path.hs +++ b/src/Utility/Path.hs diff --git a/Utility/PosixFiles.hs b/src/Utility/PosixFiles.hs index 5abbb578..5abbb578 100644 --- a/Utility/PosixFiles.hs +++ b/src/Utility/PosixFiles.hs diff --git a/Utility/Process.hs b/src/Utility/Process.hs index 549ae570..549ae570 100644 --- a/Utility/Process.hs +++ b/src/Utility/Process.hs diff --git a/Utility/QuickCheck.hs b/src/Utility/QuickCheck.hs index a498ee61..a498ee61 100644 --- a/Utility/QuickCheck.hs +++ b/src/Utility/QuickCheck.hs diff --git a/Utility/SafeCommand.hs b/src/Utility/SafeCommand.hs index 04fcf390..04fcf390 100644 --- a/Utility/SafeCommand.hs +++ b/src/Utility/SafeCommand.hs diff --git a/Utility/Scheduled.hs b/src/Utility/Scheduled.hs index 305410c5..305410c5 100644 --- a/Utility/Scheduled.hs +++ b/src/Utility/Scheduled.hs diff --git a/Utility/ThreadScheduler.hs b/src/Utility/ThreadScheduler.hs index fc026d7e..fc026d7e 100644 --- a/Utility/ThreadScheduler.hs +++ b/src/Utility/ThreadScheduler.hs diff --git a/Utility/Tmp.hs b/src/Utility/Tmp.hs index 0dc9f2c0..0dc9f2c0 100644 --- a/Utility/Tmp.hs +++ b/src/Utility/Tmp.hs diff --git a/Utility/UserInfo.hs b/src/Utility/UserInfo.hs index 617c3e94..617c3e94 100644 --- a/Utility/UserInfo.hs +++ b/src/Utility/UserInfo.hs diff --git a/src/config.hs b/src/config.hs new file mode 120000 index 00000000..e3af968e --- /dev/null +++ b/src/config.hs @@ -0,0 +1 @@ +../config.hs
\ No newline at end of file diff --git a/wrapper.hs b/src/wrapper.hs index f180e855..f180e855 100644 --- a/wrapper.hs +++ b/src/wrapper.hs |
