Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
150
Issues
150
List
Board
Labels
Milestones
Merge Requests
5
Merge Requests
5
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
haskell-gargantext
Commits
b81b739e
Verified
Commit
b81b739e
authored
Nov 29, 2024
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[CLI] add missing Server.hs file
parent
d8e7aa62
Pipeline
#7057
failed with stages
in 14 minutes and 51 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
106 additions
and
0 deletions
+106
-0
Server.hs
bin/gargantext-cli/CLI/Server.hs
+106
-0
No files found.
bin/gargantext-cli/CLI/Server.hs
0 → 100644
View file @
b81b739e
{-|
Module : CLI.Server
Description : Gargantext Server
Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3
Maintainer : team@gargantext.org
Stability : experimental
Portability : POSIX
-}
module
CLI.Server
where
import
Data.Version
(
showVersion
)
import
CLI.Parsers
(
settings_p
)
import
CLI.Types
import
GHC.IO.Encoding
(
setLocaleEncoding
,
utf8
)
import
Gargantext.API
(
startGargantext
)
import
Gargantext.API.Admin.EnvTypes
(
Mode
(
..
))
import
Gargantext.Core.Config
(
gc_worker
)
import
Gargantext.Core.Config.Types
(
_SettingsFile
)
import
Gargantext.Core.Config.Utils
(
readConfig
)
import
Gargantext.Prelude
import
Gargantext.System.Logging
(
withLogger
,
logMsg
,
LogLevel
(
..
),
Logger
)
import
Options.Applicative
import
Paths_gargantext
qualified
as
PG
-- cabal magic build module
serverCLI
::
CLIServer
->
IO
()
serverCLI
(
CLIS_start
serverArgs
)
=
withLogger
()
$
\
ioLogger
->
startServerCLI
ioLogger
serverArgs
serverCLI
(
CLIS_startAll
(
ServerArgs
{
..
}))
=
withLogger
()
$
\
ioLogger
->
do
cfg
<-
readConfig
server_toml
let
ws
=
cfg
^.
gc_worker
withAsync
(
startServerCLI
ioLogger
serverArgs
)
$
\
aServer
->
do
forConcurrently_
(
_wsDefinitions
ws
)
$
\
wd
->
do
withWorker
server_toml
$
\
env
->
do
logMsg
ioLogger
INFO
$
"starting worker '"
<>
_wdName
wd
<>
"' (queue "
<>
show
(
_wdQueue
wd
)
<>
")"
withPGMQWorkerCtrlC
env
wd
$
\
a
_state
->
do
wait
a
wait
aServer
serverCLI
(
CLIS_version
)
=
withLogger
()
$
\
ioLogger
->
do
-- Sets the locale to avoid encoding issues like in #284.
setLocaleEncoding
utf8
logMsg
ioLogger
INFO
$
"Version: "
<>
showVersion
PG
.
version
serverCmd
::
HasCallStack
=>
Mod
CommandFields
CLI
serverCmd
=
command
"server"
(
info
(
helper
<*>
(
fmap
CLISub
$
fmap
CCMD_server
serverParser
))
(
progDesc
"Gargantext server."
))
serverParser
::
Parser
CLIServer
serverParser
=
hsubparser
(
command
"start"
(
info
(
helper
<*>
start_p
)
(
progDesc
"Start the server"
))
<>
command
"start-all"
(
info
(
helper
<*>
start_all_p
)
(
progDesc
"Start the server and all workers (forked)"
))
<>
command
"version"
(
info
(
helper
<*>
version_p
)
(
progDesc
"Show version and exit"
))
)
start_p
::
Parser
CLIServer
start_p
=
fmap
CLIS_start
$
ServerArgs
<$>
mode_p
<*>
port_p
<*>
settings_p
start_all_p
::
Parser
CLIServer
start_all_p
=
fmap
CLIS_startAll
$
ServerArgs
<$>
mode_p
<*>
port_p
<*>
settings_p
mode_p
::
Parser
Mode
mode_p
=
option
auto
(
long
"mode"
<>
short
'm'
<>
metavar
"M"
<>
help
"Possible modes: Dev | Mock | Prod"
)
port_p
::
Parser
Int
port_p
=
option
auto
(
long
"port"
<>
short
'p'
<>
metavar
"P"
<>
showDefault
<>
value
8080
<>
help
"Port"
)
version_p
::
Parser
CLIServer
version_p
=
pure
CLIS_version
startServerCLI
::
Logger
IO
->
ServerArgs
->
IO
()
startServerCLI
ioLogger
(
ServerArgs
{
..
})
=
do
logMsg
ioLogger
INFO
$
"starting server, mode: "
<>
show
server_mode
<>
", port: "
<>
show
server_port
<>
", config: "
<>
_SettingsFile
server_toml
-- Sets the locale to avoid encoding issues like in #284.
setLocaleEncoding
utf8
when
(
server_mode
==
Mock
)
$
do
logMsg
ioLogger
ERROR
"Mock mode not supported!"
exitFailure
startGargantext
server_mode
server_port
server_toml
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment