From 6615eaaa15e9005b07b81c3ab90f58888005a9a6 Mon Sep 17 00:00:00 2001
From: Daniel Firth <dan.firth@homotopic.tech>
Date: Wed, 22 Feb 2023 20:27:07 +0000
Subject: [PATCH] ShellRC: fix spec errors

---
 shell/ShellRC.hs | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/shell/ShellRC.hs b/shell/ShellRC.hs
index c055df2c..94b03685 100644
--- a/shell/ShellRC.hs
+++ b/shell/ShellRC.hs
@@ -266,7 +266,11 @@ callHackageApp :: HackageSource -> Expr s a
 callHackageApp (MkHackageSource (MkName x) (MkVersion v)) = App (App callHackageLit (TextLit $ Chunks [] x)) (TextLit $ Chunks [] v)
 
 callGitApp :: GitSource -> Expr s a
-callGitApp (MkGitSource (MkRepo (MkUrl x)) (MkRevision v) _) = App (App callGitLit (TextLit $ Chunks [] x)) (TextLit $ Chunks [] v)
+callGitApp (MkGitSource (MkRepo (MkUrl x)) (MkRevision v) d) = 
+  let z = case d of
+           Nothing -> App None $ horizonField "Subdir"
+           Just (MkSubdir k) -> Some $ TextLit $ Chunks [] $ T.pack $ toFilePath k
+  in App (App (App callGitLit (TextLit $ Chunks [] x)) (TextLit $ Chunks [] v)) z
 
 callTarballApp :: TarballSource -> Expr s a
 callTarballApp (MkTarballSource (MkUrl x)) = App callTarballLit (TextLit $ Chunks [] x)
@@ -282,7 +286,7 @@ cabalFlagToExpr (MkCabalFlag x) =
   let (z, t) = case x of 
                 Disable a -> (makeFieldSelection "Disable", a)
                 Enable a -> (makeFieldSelection "Enable", a)
-  in App (Field (horizonField "CabalField") z) (TextLit $ Chunks [] t)
+  in App (Field (horizonField "CabalFlag") z) (TextLit $ Chunks [] t)
 
 haskellPackageToExpr :: HaskellPackage -> Expr s a
 haskellPackageToExpr (MkHaskellPackage s xs ys) = 
@@ -297,10 +301,10 @@ horizonExportToExpr :: HorizonExport -> Expr s Import
 horizonExportToExpr (MakePackageSet x) = packageSetExportSettingsToExpr x
 
 packageSetExportSettingsToExpr :: PackageSetExportSettings -> Expr s Import
-packageSetExportSettingsToExpr (MkPackageSetExportSettings (MkPackagesDir d) (MkPackageSetFile f) (MkPackageSet (MkCompiler c) xs)) = letHorizonSpecIn $ letPackagesBindingIn xs $ RecordLit . DMap.fromList $ [
+packageSetExportSettingsToExpr (MkPackageSetExportSettings (MkPackagesDir d) (MkPackageSetFile f) (MkPackageSet (MkCompiler c) xs)) = letHorizonSpecIn $ letPackagesBindingIn xs $ App (Field (horizonField "HorizonExport") (makeFieldSelection "MakePackageSet")) $ RecordLit . DMap.fromList $ [
     ("packageSetFile", makeRecordField $ TextLit $ Chunks [] (T.pack $ toFilePath f)),
     ("packagesDir", makeRecordField $ TextLit $ Chunks [] $ T.pack $ toFilePath d),
-    ("packagesSet", makeRecordField $  RecordLit $ DMap.fromList [("compiler", makeRecordField $ TextLit $ Chunks [] c), ("packages", makeRecordField $ ToMap "packages" Nothing)])]
+    ("packageSet", makeRecordField $  RecordLit $ DMap.fromList [("compiler", makeRecordField $ TextLit $ Chunks [] c), ("packages", makeRecordField $ ToMap "packages" Nothing)])]
 
 
 prettyHorizonExport :: HorizonExport -> Text
@@ -313,7 +317,7 @@ loadHorizon :: IO HorizonExport
 loadHorizon = Dhall.inputFile @HorizonExport Dhall.auto "horizon.dhall"
 
 horizonSpecUrl :: Dhall.Core.URL
-horizonSpecUrl = Dhall.Core.URL HTTPS "" (Dhall.Core.File (Dhall.Core.Directory ["dhall", "0.6", "raw", "-", "horizon-spec", "horizon", "gitlab.homotopic.tech"]) "package.dhall") Nothing Nothing
+horizonSpecUrl = Dhall.Core.URL HTTPS "gitlab.homotopic.tech" (Dhall.Core.File (Dhall.Core.Directory ["dhall", "0.6", "raw", "-", "horizon-spec", "horizon"]) "package.dhall") Nothing Nothing
 
 horizonSpecImportHashed :: ImportHashed
 horizonSpecImportHashed = ImportHashed Nothing (Remote horizonSpecUrl)
-- 
GitLab