From 78dcf0bcbf0abeb922f32e57a1763f2a2ea43fff Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 7 Feb 2017 10:10:26 +0100 Subject: Make main module optional --- CLPM/Package.dcl | 2 +- CLPM/Package.icl | 4 ++-- clpm.icl | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CLPM/Package.dcl b/CLPM/Package.dcl index 5499a5d..aed3c9a 100644 --- a/CLPM/Package.dcl +++ b/CLPM/Package.dcl @@ -39,7 +39,7 @@ PACKAGE_FILE :== "clpm.json" , desc :: Description , author :: Author , url :: Url - , main :: Path + , main :: Maybe Path , depends :: [Dependency] , paths :: [Path] , options :: Options diff --git a/CLPM/Package.icl b/CLPM/Package.icl index fedb224..82f4dad 100644 --- a/CLPM/Package.icl +++ b/CLPM/Package.icl @@ -135,7 +135,7 @@ toPackage spkg = sequence (map parse depends`) >>= \ds -> Ok , desc = fromJust $ spkg.StoredPackage.desc <|> Just DEFAULT_DESC , author = fromJust $ spkg.StoredPackage.author <|> Just DEFAULT_AUTHOR , url = fromJust $ spkg.StoredPackage.url <|> Just DEFAULT_URL - , main = fromJust $ spkg.StoredPackage.main <|> Just DEFAULT_MAIN + , main = spkg.StoredPackage.main , depends = ds , paths = fromJust $ spkg.StoredPackage.paths <|> Just DEFAULT_PATHS , options = toOptions spkg.StoredPackage.options @@ -175,7 +175,7 @@ toStoredPackage pkg = , desc = Just pkg.Package.desc , author = Just pkg.Package.author , url = Just pkg.Package.url - , main = Just pkg.Package.main + , main = pkg.Package.main , depends = listToMaybeList $ map toStoredDep pkg.Package.depends , paths = listToMaybeList pkg.Package.paths , options = Just $ toStoredOpts pkg.Package.options diff --git a/clpm.icl b/clpm.icl index a3382d1..b2fa764 100644 --- a/clpm.icl +++ b/clpm.icl @@ -103,13 +103,15 @@ where cmd_make :: [String] Package *File *World -> *(*File, *World) cmd_make opts pkg io w +| isNothing pkg.main + = (io <<< "This package does not have a main module.\r\n", w) # (ps,w) = getRecursivePaths pkg w | isError ps = (io <<< fromError ps <<< "\r\n", w) # ps = fromOk ps # (r,w) = syscall (foldl (+) "clm" [" -I " + p \\ p <- ps] + foldl (+) "" [" " + f \\ f <- optionsToFlags pkg.options ++ opts] + - " " + pkg.main + " -o " + pkg.main) w + " " + fromJust pkg.main + " -o " + fromJust pkg.main) w = (io,w) parseArgs :: (Arguments [String] -> ([String], Arguments)) -- cgit v1.2.3