mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 02:11:53 +00:00
alter semantics of tor update
This commit is contained in:
@@ -5,7 +5,7 @@ cabal-version: 1.12
|
||||
-- see: https://github.com/sol/hpack
|
||||
|
||||
name: ambassador-agent
|
||||
version: 0.2.13
|
||||
version: 0.2.14
|
||||
build-type: Simple
|
||||
extra-source-files:
|
||||
./migrations/0.1.0::0.1.0
|
||||
@@ -19,6 +19,7 @@ extra-source-files:
|
||||
./migrations/0.2.10::0.2.11
|
||||
./migrations/0.2.11::0.2.12
|
||||
./migrations/0.2.12::0.2.13
|
||||
./migrations/0.2.13::0.2.14
|
||||
./migrations/0.2.1::0.2.2
|
||||
./migrations/0.2.2::0.2.3
|
||||
./migrations/0.2.3::0.2.4
|
||||
|
||||
@@ -591,19 +591,22 @@ syncUpgradeTor :: SyncOp
|
||||
syncUpgradeTor = SyncOp "Install Latest Tor" check migrate False
|
||||
where
|
||||
check = run $ do
|
||||
shell "apt-get clean"
|
||||
shell "apt-get update"
|
||||
mTorVersion <- (shell "dpkg -s tor" $| shell "grep '^Version'" $| shell "cut -d ' ' -f2" $| conduit await)
|
||||
echo ("CURRENT TOR VERSION:" :: Text) (show mTorVersion :: Text)
|
||||
let torVersion = case mTorVersion of
|
||||
Nothing -> panic "invalid output from dpkg, can't read tor version"
|
||||
Just x -> x
|
||||
availVersions <-
|
||||
(shell "apt-cache madison tor" $| shell "cut -d '|' -f2" $| shell "xargs" $| conduit consume)
|
||||
echo ("AVAILABLE TOR VERSIONS:" :: Text) (show availVersions :: Text)
|
||||
pure . not $ isJust (find ((== EQ) . compareTorVersions torVersion) availVersions)
|
||||
pure $ compareTorVersions torVersion "0.3.5.15-1" == LT
|
||||
migrate = liftIO . run $ do
|
||||
shell "apt-get update"
|
||||
shell "apt-get install -y tor"
|
||||
availVersions <-
|
||||
(shell "apt-cache madison tor" $| shell "cut -d '|' -f2" $| shell "xargs" $| conduit consume)
|
||||
let latest = case lastMay $ sortBy compareTorVersions availVersions of
|
||||
Nothing -> panic "No available versions of tor"
|
||||
Just x -> x
|
||||
shell $ "apt-get install -y tor=" <> if "0.3.5.15-1" `elem` availVersions then "0.3.5.15-1" else latest
|
||||
compareTorVersions :: ByteString -> ByteString -> Ordering
|
||||
compareTorVersions a b =
|
||||
let a' = (traverse (readMaybe @Int . decodeUtf8) . (split '.' <=< split '-') $ a)
|
||||
|
||||
Reference in New Issue
Block a user