@@ -17,7 +17,7 @@ import Data.Bits
17import qualified Data.ByteString.Lazy as BSL
17import qualified Data.ByteString.Lazy as BSL
18import Data.Default
18import Data.Default
19import qualified Data.Map as Map
19import qualified Data.Map as Map
20−import Data.Maybe (isJust, listToMaybe)
20+import Data.Maybe (listToMaybe)
21import qualified Data.Set as Set
21import qualified Data.Set as Set
22import Data.String.Here.Interpolated (i)
22import Data.String.Here.Interpolated (i)
23import qualified Data.Text as T
23import qualified Data.Text as T
@@ -137,6 +137,9 @@ deployPush deployPath getNixBuilders = do
137 Left err -> do
137 Left err -> do
138 putLog Warning [i|No valid thunk found at ${srcPath} due to ${err}: Attempting to find commit hash anyway.|]
138 putLog Warning [i|No valid thunk found at ${srcPath} due to ${err}: Attempting to find commit hash anyway.|]
139 handleUnpackedWith $ fmap show . listToMaybe . T.lines <$> readGitProcess srcPath ["rev-parse", "HEAD"]
139 handleUnpackedWith $ fmap show . listToMaybe . T.lines <$> readGitProcess srcPath ["rev-parse", "HEAD"]
140+ version <- case version' of
141+ Nothing -> failWith [i|Could not determine commit hash of ${srcPath}|]
142+ Just v -> v <$ putLog Notice [i|Deploying commit ${v}|]
140 builders <- getNixBuilders
143 builders <- getNixBuilders
141 let moduleFile = deployPath </> "module.nix"
144 let moduleFile = deployPath </> "module.nix"
142 moduleFileExists <- liftIO $ doesFileExist moduleFile
145 moduleFileExists <- liftIO $ doesFileExist moduleFile
@@ -153,7 +156,7 @@ deployPush deployPath getNixBuilders = do
153 [ strArg "hostName" host
156 [ strArg "hostName" host
154 , strArg "adminEmail" adminEmail
157 , strArg "adminEmail" adminEmail
155 , strArg "routeHost" routeHost
158 , strArg "routeHost" routeHost
156− , strArg "version" $ maybe "Deployment was done with a dirty source tree" id version'
159+ , strArg "version" version
157 , boolArg "enableHttps" enableHttps
160 , boolArg "enableHttps" enableHttps
158 ] <> [rawArg "module" ("import " <> toNixPath moduleFile) | moduleFileExists ])
161 ] <> [rawArg "module" ("import " <> toNixPath moduleFile) | moduleFileExists ])
159 & nixCmdConfig_builders .~ builders
162 & nixCmdConfig_builders .~ builders
@@ -183,14 +186,13 @@ deployPush deployPath getNixBuilders = do
183 , "/nix/var/nix/profiles/system/bin/switch-to-configuration switch"
186 , "/nix/var/nix/profiles/system/bin/switch-to-configuration switch"
186− when (isJust version') $ do
187− isClean <- checkGitCleanStatus deployPath True
189+ isClean <- checkGitCleanStatus deployPath True
188− when (not isClean) $ do
190+ when (not isClean) $ do
189− withSpinner "Committing changes to Git" $ do
191+ withSpinner "Committing changes to Git" $ do
190− callProcessAndLogOutput (Debug, Error) $ proc "git"
192+ callProcessAndLogOutput (Debug, Error) $ proc "git"
191− ["-C", deployPath, "add", "."]
193+ ["-C", deployPath, "add", "."]
192− callProcessAndLogOutput (Debug, Error) $ proc "git"
194+ callProcessAndLogOutput (Debug, Error) $ proc "git"
193− ["-C", deployPath, "commit", "-m", "New deployment"]
195+ ["-C", deployPath, "commit", "-m", "New deployment"]
194 putLog Notice $ "Deployed => " <> T.pack route
196 putLog Notice $ "Deployed => " <> T.pack route
196 callProcess' envMap cmd args = do
198 callProcess' envMap cmd args = do