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
160
Issues
160
List
Board
Labels
Milestones
Merge Requests
14
Merge Requests
14
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
Show 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