Commit 5760e558 authored by Alfredo Di Napoli's avatar Alfredo Di Napoli

Port gargantext-init to CLI

parent 1310b3a3
{-| {-|
Module : Main.hs Module : Init.hs
Description : Gargantext Import Corpus Description : Gargantext Init Script
Copyright : (c) CNRS, 2017-Present Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3 License : AGPL + CECILL v3
Maintainer : team@gargantext.org Maintainer : team@gargantext.org
Stability : experimental Stability : experimental
Portability : POSIX Portability : POSIX
Import a corpus binary. Initialise the Gargantext dataset.
-} -}
{-# LANGUAGE Strict #-} {-# LANGUAGE Strict #-}
module Main where module CLI.Init where
import Data.List.NonEmpty qualified as NE import Data.List.NonEmpty qualified as NE
import Gargantext.API.Dev (withDevEnv, runCmdDev) import Gargantext.API.Dev (withDevEnv, runCmdDev)
...@@ -32,16 +32,12 @@ import Gargantext.Prelude ...@@ -32,16 +32,12 @@ import Gargantext.Prelude
import Gargantext.Prelude.Config (GargConfig(..), readConfig) import Gargantext.Prelude.Config (GargConfig(..), readConfig)
import Gargantext.API.Admin.Types import Gargantext.API.Admin.Types
import Gargantext.Database.Prelude (DBCmd') import Gargantext.Database.Prelude (DBCmd')
import CLI.Types
import Options.Applicative
main :: IO () initCLI :: InitArgs -> IO ()
main = do initCLI (InitArgs iniPath) = do
params@[iniPath] <- getArgs
_ <- if length params /= 1
then panicTrace "USAGE: ./gargantext-init gargantext.ini"
else pure ()
putStrLn ("Enter master user (gargantua) _password_ :" :: Text) putStrLn ("Enter master user (gargantua) _password_ :" :: Text)
password <- getLine password <- getLine
...@@ -77,4 +73,13 @@ main = do ...@@ -77,4 +73,13 @@ main = do
x <- runCmdDev env initMaster x <- runCmdDev env initMaster
_ <- runCmdDev env mkRoots _ <- runCmdDev env mkRoots
putStrLn (show x :: Text) putStrLn (show x :: Text)
pure ()
initCmd :: HasCallStack => Mod CommandFields CLI
initCmd = command "init" (info (helper <*> fmap CLISub init_p) (progDesc "Initialise this Gargantext instance."))
init_p :: Parser CLICmd
init_p = fmap CCMD_init $ InitArgs
<$> ( strOption ( long "ini-path"
<> metavar "FILEPATH"
<> help "Location of the .ini path"
) )
...@@ -43,12 +43,17 @@ data ImportArgs = ImportArgs ...@@ -43,12 +43,17 @@ data ImportArgs = ImportArgs
, imp_corpus_path :: !FilePath , imp_corpus_path :: !FilePath
} deriving (Show, Eq) } deriving (Show, Eq)
data InitArgs = InitArgs
{ init_ini :: !FilePath
} deriving (Show, Eq)
data CLICmd data CLICmd
= CCMD_clean_csv_corpus = CCMD_clean_csv_corpus
| CCMD_filter_terms_and_cooc !CorpusFile !TermListFile !OutputFile | CCMD_filter_terms_and_cooc !CorpusFile !TermListFile !OutputFile
| CCMD_obfuscate_db !ObfuscateDBArgs | CCMD_obfuscate_db !ObfuscateDBArgs
| CCMD_admin !AdminArgs | CCMD_admin !AdminArgs
| CCMD_import !ImportArgs | CCMD_import !ImportArgs
| CCMD_init !InitArgs
deriving (Show, Eq) deriving (Show, Eq)
data CLI = data CLI =
......
...@@ -25,6 +25,7 @@ import CLI.Types ...@@ -25,6 +25,7 @@ import CLI.Types
import Options.Applicative import Options.Applicative
import CLI.Admin (adminCLI, adminCmd) import CLI.Admin (adminCLI, adminCmd)
import CLI.Import (importCLI, importCmd) import CLI.Import (importCLI, importCmd)
import CLI.Init (initCLI, initCmd)
runCLI :: CLI -> IO () runCLI :: CLI -> IO ()
runCLI = \case runCLI = \case
...@@ -38,6 +39,8 @@ runCLI = \case ...@@ -38,6 +39,8 @@ runCLI = \case
-> adminCLI args -> adminCLI args
CLISub (CCMD_import args) CLISub (CCMD_import args)
-> importCLI args -> importCLI args
CLISub (CCMD_init args)
-> initCLI args
main :: IO () main :: IO ()
main = runCLI =<< execParser opts main = runCLI =<< execParser opts
...@@ -52,5 +55,6 @@ allOptions = subparser ( ...@@ -52,5 +55,6 @@ allOptions = subparser (
filterTermsAndCoocCmd <> filterTermsAndCoocCmd <>
obfuscateDBCmd <> obfuscateDBCmd <>
adminCmd <> adminCmd <>
importCmd importCmd <>
initCmd
) )
...@@ -702,6 +702,7 @@ executable gargantext-cli ...@@ -702,6 +702,7 @@ executable gargantext-cli
CLI.CleanCsvCorpus CLI.CleanCsvCorpus
CLI.FilterTermsAndCooc CLI.FilterTermsAndCooc
CLI.Import CLI.Import
CLI.Init
CLI.ObfuscateDB CLI.ObfuscateDB
CLI.Types CLI.Types
CLI.Utils CLI.Utils
...@@ -728,22 +729,6 @@ executable gargantext-cli ...@@ -728,22 +729,6 @@ executable gargantext-cli
, unordered-containers ^>= 0.2.16.0 , unordered-containers ^>= 0.2.16.0
, vector ^>= 0.12.3.0 , vector ^>= 0.12.3.0
executable gargantext-init
import:
defaults
, optimized
main-is: Main.hs
other-modules:
Paths_gargantext
hs-source-dirs:
bin/gargantext-init
build-depends:
cron ^>= 0.7.0
, extra ^>= 1.7.9
, gargantext
, gargantext-prelude
, text ^>= 1.2.4.1
executable gargantext-invitations executable gargantext-invitations
import: import:
defaults defaults
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment