diff options
Diffstat (limited to 'CLPM/Repository.dcl')
-rw-r--r-- | CLPM/Repository.dcl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/CLPM/Repository.dcl b/CLPM/Repository.dcl new file mode 100644 index 0000000..f9dce62 --- /dev/null +++ b/CLPM/Repository.dcl @@ -0,0 +1,36 @@ +definition module CLPM.Repository + +from Data.Error import :: MaybeError, :: MaybeErrorString +from Data.Maybe import :: Maybe + +from Text.JSON import :: JSONNode, generic JSONDecode + +from CLPM.Package import + :: PackageName, :: Version, :: Description, :: Author, :: Url, + :: VersionRequirement + +REPOSITORY :== "clpm.camilstaps.nl" +TIMEOUT :== 10000 +PORT :== 80 + +:: Repository :== [RepositoryItem] + +:: RepositoryItem + = { name :: PackageName + , desc :: Description + , author :: Author + , url :: Url + , versions :: [RepositoryItemVersion] + } + +:: RepositoryItemVersion + = { version :: Version + , depends :: [(PackageName, String)] + } + +derive JSONDecode RepositoryItem, RepositoryItemVersion + +getRepository :: Url *World -> *(MaybeErrorString Repository, *World) + +getVersions :: (PackageName Repository -> [RepositoryItemVersion]) +resolve :: PackageName VersionRequirement Repository -> [RepositoryItemVersion] |