packages feed

hjugement-cli-0.0.0.20190621: src/Hjugement/CLI/MkElection.hs

{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# OPTIONS_GHC -Wno-missing-signatures #-}
module Hjugement.CLI.MkElection where

import Control.Applicative (Applicative(..))
import Control.Monad (Monad(..))
import Data.Bool
import Data.Maybe (Maybe(..))
import Data.Function (($))
import Data.Functor ((<$>))
import Data.Semigroup (Semigroup(..))
import Data.String (String)
import Symantic.CLI as CLI
import System.IO (FilePath)
import Text.Show (Show)
import qualified Symantic.Document as Doc
import qualified Voting.Protocol as VP

import Hjugement.CLI.Utils

data MkElection_Options = MkElection_Options
 {   mkelection_crypto   :: VP.FFC
 ,   mkelection_template :: FilePath
 ,   mkelection_uuid     :: VP.UUID
 } deriving (Show)

api_mkelection =
	"This command reads and checks "<>fileRef"public_keys.jsons"<>"\
 \ (or "<>fileRef"threshold.json"<>" if it exists).\
 \ It then computes the global election public key\
 \ and generates an "<>fileRef"election.json"<>" file."
	`helps`
	command "mkelection" $
		rule "OPTIONS"
		 (MkElection_Options
			 <$> option_crypto
			 <*> option_template
			 <*> option_uuid)
		<?> response @Doc
		<!> api_help False

run_mkelection MkElection_Options{..} =
	return ""