Simple, hacky approach to ensure only one cabal-loader-stackage runs

This commit is contained in:
Michael Snoyman 2015-04-03 09:14:54 +03:00
parent d6b9c8c04e
commit d98d3866ec
2 changed files with 6 additions and 0 deletions

View File

@ -16,6 +16,7 @@ import Data.Hackage.DeprecationInfo
import Data.Unpacking (newDocUnpacker, createHoogleDatabases)
import Data.WebsiteContent
import Data.Slug (SnapSlug (..), safeMakeSlug, HasGenIO)
import Data.Streaming.Network (bindPortTCP)
import Data.Time (diffUTCTime)
import qualified Database.Esqueleto as E
import qualified Database.Persist
@ -249,6 +250,10 @@ instance HasHttpManager CabalLoaderEnv where
cabalLoaderMain :: IO ()
cabalLoaderMain = do
-- Hacky approach instead of PID files
void $ catchIO (bindPortTCP 17834 "127.0.0.1") $ \_ ->
error $ "cabal loader process already running, exiting"
conf <- fromArgs parseExtra
dbconf <- getDbConf conf
pool <- Database.Persist.createPoolConfig dbconf

View File

@ -166,6 +166,7 @@ library
, auto-update
, stackage-types
, yesod-sitemap
, streaming-commons
executable stackage-server
if flag(library-only)