plz / main.v
64 lines · 56 sloc · 2.53 KB · cc0e0b1afb9d8e496bb2de9849994f8b5163c647
Raw
1import os
2import veb
3import config
4
5enum Lang {
6 en
7 ru
8 es
9 jp
10 cn
11 pt
12}
13
14const tr_menu_en = '<select id=select_lang><option value=en selected>English</option><option value=ru>Русский</option><option value=es>Español</option><option value=jp>日本語</option><option value=cn>中文</option><option value=pt>Português</option></select>'
15const tr_menu_ru = '<select id=select_lang><option value=en>English</option><option value=ru selected>Русский</option><option value=es>Español</option><option value=jp>日本語</option><option value=cn>中文</option><option value=pt>Português</option></select>'
16const tr_menu_es = '<select id=select_lang><option value=en>English</option><option value=ru>Русский</option><option value=es selected>Español</option><option value=jp>日本語</option><option value=cn>中文</option><option value=pt>Português</option></select>'
17const tr_menu_jp = '<select id=select_lang><option value=en>English</option><option value=ru>Русский</option><option value=es>Español</option><option value=jp selected>日本語</option><option value=cn>中文</option><option value=pt>Português</option></select>'
18const tr_menu_cn = '<select id=select_lang><option value=en>English</option><option value=ru>Русский</option><option value=es>Español</option><option value=jp>日本語</option><option value=cn selected>中文</option><option value=pt>Português</option></select>'
19const tr_menu_pt = '<select id=select_lang><option value=en>English</option><option value=ru>Русский</option><option value=es>Español</option><option value=jp>日本語</option><option value=cn>中文</option><option value=pt selected>Português</option></select>'
20
21fn get_port(conf config.Config) int {
22 // Priority: -p flag > GITLY_PORT env > config.json port > 8080
23 for i, arg in os.args {
24 if (arg == '-p' || arg == '--port') && i + 1 < os.args.len {
25 return os.args[i + 1].int()
26 }
27 }
28 env_port := os.getenv_opt('GITLY_PORT') or { '' }
29 if env_port != '' {
30 return env_port.int()
31 }
32 if conf.port > 0 {
33 return conf.port
34 }
35 return 8080
36}
37
38fn main() {
39 if os.args.contains('ci_run') {
40 return
41 }
42 mut app := new_app()!
43
44 app.use(handler: app.before_request)
45
46 app.port = get_port(app.config)
47
48 veb.run_at[App, Context](mut app,
49 port: app.port
50 family: .ip
51 timeout_in_seconds: 5
52 ) or { panic(err) }
53}
54
55fn build_tr_menu(cur_lang Lang) string {
56 return match cur_lang {
57 .ru { tr_menu_ru }
58 .en { tr_menu_en }
59 .es { tr_menu_es }
60 .jp { tr_menu_jp }
61 .cn { tr_menu_cn }
62 .pt { tr_menu_pt }
63 }
64}
65