diff options
Diffstat (limited to 'CLPM/Package.dcl')
-rw-r--r-- | CLPM/Package.dcl | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/CLPM/Package.dcl b/CLPM/Package.dcl index 2a476a7..9c685d2 100644 --- a/CLPM/Package.dcl +++ b/CLPM/Package.dcl @@ -2,26 +2,39 @@ definition module CLPM.Package from StdFile import class <<< +from Data.Error import :: MaybeError, :: MaybeErrorString from Data.Maybe import :: Maybe from Text.JSON import :: JSONNode, generic JSONEncode, generic JSONDecode -:: StoredPackage - = { name :: Maybe PackageName - , desc :: Maybe Description - , author :: Maybe Author - , url :: Maybe Url - , depends :: Maybe [StoredDependency] - } +DEFAULT_NAME :== "Unnamed package" +DEFAULT_DESC :== "Empty description" +DEFAULT_AUTHOR :== "Unknown author" +DEFAULT_URL :== "http://clean.cs.ru.nl" +DEFAULT_MAIN :== "main" +DEFAULT_PATHS :== ["."] +DEFAULT_OPTIONS :== + { show_result = True + , show_constructors = True + , show_time = True + , heap_size = 2000 + , stack_size = 500 + , extra_flags = [] + } -:: StoredDependency :== (PackageName, StoredPackageSource) -:: StoredPackageSource :== String +MODULE_DIR :== "clpm_modules" +PACKAGE_FILE :== "clpm.json" + +:: StoredPackage :: Package = { name :: PackageName , desc :: Description , author :: Author , url :: Url + , main :: Path , depends :: [Dependency] + , paths :: [Path] + , options :: Options } :: Dependency @@ -30,14 +43,23 @@ from Text.JSON import :: JSONNode, generic JSONEncode, generic JSONDecode } :: PackageSource - = GitHub String String GitTag - | Git Url GitTag + = Git Url GitTag | Download Url +:: Options + = { show_result :: Bool + , show_constructors :: Bool + , show_time :: Bool + , heap_size :: Int + , stack_size :: Int + , extra_flags :: [String] + } + :: PackageName :== String :: Description :== String :: Author :== String :: Url :== String +:: Path :== String :: GitTag = Commit String @@ -52,7 +74,7 @@ instance <<< Package toPackage :: StoredPackage -> Package toStoredPackage :: Package -> StoredPackage -DEFAULT_NAME :== "Unnamed package" -DEFAULT_DESC :== "Empty description" -DEFAULT_AUTHOR :== "Unknown author" -DEFAULT_URL :== "http://clean.cs.ru.nl" +readPackage :: String -> *World -> *(Maybe Package, *World) +getRecursivePaths :: Package *World -> (MaybeErrorString [Path], *World) + +optionsToFlags :: Options -> [String] |