diff options
author | Camil Staps | 2017-02-04 00:15:30 +0100 |
---|---|---|
committer | Camil Staps | 2017-02-04 00:15:30 +0100 |
commit | 8fd9782b67bd97b33adab00815d215d10382adea (patch) | |
tree | b573af31d974ee646e47f9f124f18edb0c934529 /CLPM/Package.dcl | |
parent | Initial commit (diff) |
Basic Package structure
Diffstat (limited to 'CLPM/Package.dcl')
-rw-r--r-- | CLPM/Package.dcl | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/CLPM/Package.dcl b/CLPM/Package.dcl new file mode 100644 index 0000000..2a476a7 --- /dev/null +++ b/CLPM/Package.dcl @@ -0,0 +1,58 @@ +definition module CLPM.Package + +from StdFile import class <<< + +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] + } + +:: StoredDependency :== (PackageName, StoredPackageSource) +:: StoredPackageSource :== String + +:: Package + = { name :: PackageName + , desc :: Description + , author :: Author + , url :: Url + , depends :: [Dependency] + } + +:: Dependency + = { dep_name :: PackageName + , dep_source :: PackageSource + } + +:: PackageSource + = GitHub String String GitTag + | Git Url GitTag + | Download Url + +:: PackageName :== String +:: Description :== String +:: Author :== String +:: Url :== String + +:: GitTag + = Commit String + | Tag String + | Latest + +derive JSONEncode StoredPackage +derive JSONDecode StoredPackage + +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" |