Merge branch 'joeyconfig'
This commit is contained in:
commit
006b1c3585
|
@ -304,7 +304,7 @@ beaver = host "beaver.kitenet.net"
|
||||||
|
|
||||||
iabak :: Host
|
iabak :: Host
|
||||||
iabak = host "iabak.archiveteam.org"
|
iabak = host "iabak.archiveteam.org"
|
||||||
& aias "ia-bak.joeyh.name"
|
& alias "ia-bak.joeyh.name"
|
||||||
& ipv4 "124.6.40.227"
|
& ipv4 "124.6.40.227"
|
||||||
& os (System (Debian Testing) "amd64")
|
& os (System (Debian Testing) "amd64")
|
||||||
& Apt.stdSourcesList `onChange` Apt.upgrade
|
& Apt.stdSourcesList `onChange` Apt.upgrade
|
||||||
|
|
|
@ -1,3 +1,14 @@
|
||||||
|
propellor (2.2.2) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* Make propellor resistent to changes to shared libraries, such as libffi,
|
||||||
|
which might render the propellor binary unable to run. This is dealt with
|
||||||
|
by checking the binary both when running propellor on a remote host,
|
||||||
|
and by Cron.runPropellor. If the binary doesn't work, it will be rebuilt.
|
||||||
|
* Note that since a new switch had to be added to allow testing the binary,
|
||||||
|
upgrading to this version will cause a rebuild from scratch of propellor.
|
||||||
|
|
||||||
|
-- Joey Hess <id@joeyh.name> Thu, 02 Apr 2015 10:09:46 -0400
|
||||||
|
|
||||||
propellor (2.2.1) unstable; urgency=medium
|
propellor (2.2.1) unstable; urgency=medium
|
||||||
|
|
||||||
* userScriptProperty now passes --shell /bin/sh, so it can be used
|
* userScriptProperty now passes --shell /bin/sh, so it can be used
|
||||||
|
|
|
@ -95,6 +95,10 @@ and configured in haskell.
|
||||||
|
|
||||||
(This will result in a trapezoid pattern in gitk.)
|
(This will result in a trapezoid pattern in gitk.)
|
||||||
|
|
||||||
|
* propellor --check
|
||||||
|
|
||||||
|
If propellor is able to run, this simply exists successfully.
|
||||||
|
|
||||||
* propellor hostname
|
* propellor hostname
|
||||||
|
|
||||||
When run with a hostname and no other options, propellor will
|
When run with a hostname and no other options, propellor will
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
module Propellor.Bootstrap (
|
module Propellor.Bootstrap (
|
||||||
bootstrapPropellorCommand,
|
bootstrapPropellorCommand,
|
||||||
|
checkBinaryCommand,
|
||||||
installGitCommand,
|
installGitCommand,
|
||||||
buildPropellor,
|
buildPropellor,
|
||||||
) where
|
) where
|
||||||
|
@ -12,14 +13,24 @@ import Data.List
|
||||||
|
|
||||||
type ShellCommand = String
|
type ShellCommand = String
|
||||||
|
|
||||||
-- Shell command line to build propellor, used when bootstrapping on a new
|
-- Shell command line to ensure propellor is bootstrapped and ready to run.
|
||||||
-- host. Should be run inside the propellor config dir, and will install
|
-- Should be run inside the propellor config dir, and will install
|
||||||
-- all necessary build dependencies.
|
-- all necessary build dependencies and build propellor.
|
||||||
bootstrapPropellorCommand :: ShellCommand
|
bootstrapPropellorCommand :: ShellCommand
|
||||||
bootstrapPropellorCommand = "if ! test -x ./propellor; then " ++ go ++ "; fi"
|
bootstrapPropellorCommand = "if ! test -x ./propellor; then " ++ go ++ "; fi;" ++ checkBinaryCommand
|
||||||
|
where
|
||||||
|
go = intercalate " && "
|
||||||
|
[ depsCommand
|
||||||
|
, buildCommand
|
||||||
|
]
|
||||||
|
|
||||||
|
-- Use propellor --check to detect if the local propellor binary has
|
||||||
|
-- stopped working (eg due to library changes), and must be rebuilt.
|
||||||
|
checkBinaryCommand :: ShellCommand
|
||||||
|
checkBinaryCommand = "if test -x ./propellor && ! ./propellor --check 2>/dev/null; then " ++ go ++ "; fi"
|
||||||
where
|
where
|
||||||
go = intercalate " && "
|
go = intercalate " && "
|
||||||
[ depsCommand
|
[ "cabal clean"
|
||||||
, buildCommand
|
, buildCommand
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ usage h = hPutStrLn h $ unlines
|
||||||
, " propellor --list-fields"
|
, " propellor --list-fields"
|
||||||
, " propellor --merge"
|
, " propellor --merge"
|
||||||
, " propellor --build"
|
, " propellor --build"
|
||||||
|
, " propellor --check"
|
||||||
]
|
]
|
||||||
|
|
||||||
usageError :: [String] -> IO a
|
usageError :: [String] -> IO a
|
||||||
|
@ -43,6 +44,7 @@ usageError ps = do
|
||||||
processCmdLine :: IO CmdLine
|
processCmdLine :: IO CmdLine
|
||||||
processCmdLine = go =<< getArgs
|
processCmdLine = go =<< getArgs
|
||||||
where
|
where
|
||||||
|
go ("--check":_) = return Check
|
||||||
go ("--spin":ps) = case reverse ps of
|
go ("--spin":ps) = case reverse ps of
|
||||||
(r:"--via":hs) -> Spin
|
(r:"--via":hs) -> Spin
|
||||||
<$> mapM hostname (reverse hs)
|
<$> mapM hostname (reverse hs)
|
||||||
|
@ -91,6 +93,7 @@ defaultMain hostlist = do
|
||||||
where
|
where
|
||||||
go _ (Serialized cmdline) = go True cmdline
|
go _ (Serialized cmdline) = go True cmdline
|
||||||
go _ (Continue cmdline) = go False cmdline
|
go _ (Continue cmdline) = go False cmdline
|
||||||
|
go _ Check = return ()
|
||||||
go _ (Set field context) = setPrivData field context
|
go _ (Set field context) = setPrivData field context
|
||||||
go _ (Dump field context) = dumpPrivData field context
|
go _ (Dump field context) = dumpPrivData field context
|
||||||
go _ (Edit field context) = editPrivData field context
|
go _ (Edit field context) = editPrivData field context
|
||||||
|
|
|
@ -3,6 +3,7 @@ module Propellor.Property.Cron where
|
||||||
import Propellor
|
import Propellor
|
||||||
import qualified Propellor.Property.File as File
|
import qualified Propellor.Property.File as File
|
||||||
import qualified Propellor.Property.Apt as Apt
|
import qualified Propellor.Property.Apt as Apt
|
||||||
|
import Propellor.Bootstrap
|
||||||
import Utility.SafeCommand
|
import Utility.SafeCommand
|
||||||
import Utility.FileMode
|
import Utility.FileMode
|
||||||
|
|
||||||
|
@ -81,4 +82,5 @@ niceJob desc times user cddir command = job desc times user cddir
|
||||||
|
|
||||||
-- | Installs a cron job to run propellor.
|
-- | Installs a cron job to run propellor.
|
||||||
runPropellor :: Times -> Property NoInfo
|
runPropellor :: Times -> Property NoInfo
|
||||||
runPropellor times = niceJob "propellor" times "root" localdir "./propellor"
|
runPropellor times = niceJob "propellor" times "root" localdir
|
||||||
|
(bootstrapPropellorCommand ++ "; ./propellor")
|
||||||
|
|
|
@ -23,5 +23,6 @@ data CmdLine
|
||||||
| DockerChain HostName String
|
| DockerChain HostName String
|
||||||
| ChrootChain HostName FilePath Bool Bool
|
| ChrootChain HostName FilePath Bool Bool
|
||||||
| GitPush Fd Fd
|
| GitPush Fd Fd
|
||||||
|
| Check
|
||||||
deriving (Read, Show, Eq)
|
deriving (Read, Show, Eq)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue