small housekeeping tasks

This commit is contained in:
2024-11-10 18:32:43 +00:00
parent a11efa624d
commit c89e73eb3b
5 changed files with 22 additions and 40 deletions

4
haskell/README.md Normal file
View File

@@ -0,0 +1,4 @@
# P2PRC Haskell library doc

View File

@@ -1,6 +1,6 @@
module API
( P2prAPI(..)
( P2PRCapi(..)
, MapPortRequest(..)
, getP2prcAPI
)
@@ -32,7 +32,7 @@ import Environment ( cleanEnvironment )
data P2prAPI = MkP2prAPI
data P2PRCapi = MkP2PRCapi
{ startServer :: IOEitherError ProcessHandle
, execInitConfig :: IOEitherError P2prcConfig
, execListServers :: IOEitherError IPAdressTable
@@ -44,7 +44,7 @@ data MapPortRequest
= MkMapPortRequest Int String
getP2prcAPI :: IOEitherError P2prAPI
getP2prcAPI :: IOEitherError P2PRCapi
getP2prcAPI = do
cleanEnvironment
@@ -64,23 +64,23 @@ getP2prcAPI = do
in do
Right $ MkP2prAPI
Right $ MkP2PRCapi
{ startServer = spawnProcP2Prc p2prcCmd [ MkOptAtomic "--s" ]
, execListServers =
execProcP2PrcParser [ MkOptAtomic "--ls" ] MkEmptyStdInput
, execMapPort =
\ (MkMapPortRequest portNumber _) ->
\ (MkMapPortRequest portNumber domainName) ->
execProcP2PrcParser
[ MkOptTuple
( "--mp"
, show portNumber
)
-- , MkOptTuple -- TODO: add domain parameter
-- ( "--dm"
-- , domainName
-- )
, MkOptTuple
( "--dn"
, domainName
)
]
MkEmptyStdInput

View File

@@ -7,8 +7,8 @@ import System.Process ( terminateProcess )
import Control.Concurrent ( threadDelay )
import API
( P2prAPI(..)
, MapPortRequest(..)
( P2PRCapi(..)
, MapPortRequest(MkMapPortRequest)
, getP2prcAPI
)
@@ -37,13 +37,14 @@ import API
runP2Prc :: IO ()
runP2Prc = do
--
-- TODO: add quickcheck testing (quickchecking-dynamic)
--
-- TODO: Change Standard Library
-- TODO: add GDTA syntax to data types
--
-- TODO: need monad transformers to refactor the code
--
-- TODO: add quickcheck testing (quickchecking-dynamic)
--
-- TODO: parse IO arguments;
-- TODO: create DSL from the standard input
@@ -68,7 +69,7 @@ runP2Prc = do
case eitherP2prcAPI of
(Right p2prcAPI) -> do
let
( MkP2prAPI
( MkP2PRCapi
{ startServer = startServer
, execInitConfig = execInitConfig
, execListServers = execListServers

View File

@@ -1,13 +1,7 @@
cabal-version: 3.0
-- http://haskell.org/cabal/users-guide/
-- The name of the package.
name: p2prc
-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
@@ -16,59 +10,43 @@ name: p2prc
-- | | | +--- code changes with no API change
version: 0.1.0.0
-- A short (one-line) description of the package.
synopsis: p2prc haskell library
-- A longer description of the package.
description: Implements a client interface to the P2Prc networking runtime
description: Implements a client interface to the P2PRC networking runtime
-- The license under which the package is released.
license: GPL-3.0-only
-- The file containing the license text.
license-file: LICENSE
-- The package author(s).
author: xecarlox94
-- An email address to which users can send suggestions, bug reports, and patches.
maintainer: jf94.uk@gmail.com
-- A copyright notice.
-- copyright:
category: Network
build-type: Simple
-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files: CHANGELOG.md
extra-doc-files: README.md
-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
-- extra-source-files:
common warnings
ghc-options: -Wall
executable p2prc
-- Import common warning flags.
import: warnings
-- Directories containing source files.
hs-source-dirs: src
-- .hs or .lhs file containing the Main module.
main-is: Main.hs
-- Modules included in this executable, other than Main.
-- other-modules: Example
-- LANGUAGE extensions used by modules in this package.
other-extensions: OverloadedStrings
-- Other library packages from which modules are imported.
build-depends: base
, p2prc
-- Base language which the package is written in.
default-language: GHC2021
library

View File

@@ -1,5 +1,4 @@
module Main where
import P2Prc (runP2Prc)