Правки файла конфигурации repko, добавление секции gpg
This commit is contained in:
parent
1a71525075
commit
58b258be29
2 changed files with 64 additions and 8 deletions
|
|
@ -77,6 +77,15 @@ variables:
|
|||
- name: "database_password"
|
||||
type: "string"
|
||||
default: "admin"
|
||||
- name: "gpg_full_name"
|
||||
type: "string"
|
||||
default: "Repko Reposiory"
|
||||
- name: "gpg_note"
|
||||
type: "string"
|
||||
default: "notee"
|
||||
- name: "gpg_mail"
|
||||
type: "string"
|
||||
default: "admin@repko.com"
|
||||
- name: "debian_root"
|
||||
type: "string"
|
||||
default: "/var/www/repko/debian"
|
||||
|
|
@ -185,14 +194,14 @@ sections:
|
|||
field-type: "input"
|
||||
description: "Домен на котором будет работать api"
|
||||
validate:
|
||||
- rule: "regex_match(api_domain,`^[a-zA-Z0-9.-]+$`"
|
||||
- rule: "regex_match(api_domain,`^[a-zA-Z0-9.-]+$`)"
|
||||
message: "Только латинские буквы, цифры, -, '.'"
|
||||
- name: "panel_domain"
|
||||
variable-name: "panel_domain"
|
||||
field-type: "input"
|
||||
description: "Домен на котором будет работать сайт"
|
||||
validate:
|
||||
- rule: "regex_match(api_domain,`^[a-zA-Z0-9.-]+$`"
|
||||
- rule: "regex_match(api_domain,`^[a-zA-Z0-9.-]+$`)"
|
||||
message: "Только латинские буквы, цифры, -, '.'"
|
||||
- name: "cookie_domain"
|
||||
variable-name: "cookie_domain"
|
||||
|
|
@ -328,7 +337,7 @@ sections:
|
|||
parent:
|
||||
- "database_type"
|
||||
validate:
|
||||
- rule: "regex_match(database_host,`^[a-zA-Z0-9.-]+$`"
|
||||
- rule: "regex_match(database_host,`^[a-zA-Z0-9.-]+$`)"
|
||||
message: "Только латинские буквы, цифры, -, '.'"
|
||||
- name: "database_port"
|
||||
variable-name: "database_port"
|
||||
|
|
@ -338,7 +347,7 @@ sections:
|
|||
parent:
|
||||
- "database_type"
|
||||
validate:
|
||||
- rule: "regex_match(database_host,`^[0-9]+$`"
|
||||
- rule: "regex_match(database_host,`^[0-9]+$`)"
|
||||
message: "Только цифры"
|
||||
- name: "database_name"
|
||||
variable-name: "database_name"
|
||||
|
|
@ -348,7 +357,7 @@ sections:
|
|||
parent:
|
||||
- "database_type"
|
||||
validate:
|
||||
- rule: "regex_match(database_name,`^[a-zA-Z0-9_-]+$`"
|
||||
- rule: "regex_match(database_name,`^[a-zA-Z0-9_-]+$`)"
|
||||
message: "Только латинские буквы, цифры, -, _"
|
||||
- name: "database_user"
|
||||
variable-name: "database_user"
|
||||
|
|
@ -358,7 +367,7 @@ sections:
|
|||
parent:
|
||||
- "database_type"
|
||||
validate:
|
||||
- rule: "regex_match(database_user,`^[a-zA-Z0-9_-]+$`"
|
||||
- rule: "regex_match(database_user,`^[a-zA-Z0-9_-]+$`)"
|
||||
message: "Только латинские буквы, цифры, -, _"
|
||||
- name: "database_password"
|
||||
variable-name: "database_password"
|
||||
|
|
@ -370,6 +379,44 @@ sections:
|
|||
validate:
|
||||
- rule: "database_password!=''"
|
||||
message: "Поле не может быть пустым"
|
||||
- name: "gpg"
|
||||
description: "Настройка gpg"
|
||||
condition: "not file_exists('/var/lib/repko/gnupg/pubring.kbx')"
|
||||
fields:
|
||||
- name: "gpg name"
|
||||
variable-name: "gpg_full_name"
|
||||
field-type: "input"
|
||||
description: "Полное имя для gpg ключа"
|
||||
validate:
|
||||
- rule: "gpg_full_name!=''"
|
||||
message: "Поле не может быть пустым"
|
||||
- rule: "regex_match(gpg_full_name,`^[a-zA-z0-9 .-]+$`)"
|
||||
message: "Только латинские буквы, цифры, -, _, ' '"
|
||||
- name: "gpg note"
|
||||
variable-name: "gpg_note"
|
||||
field-type: "input"
|
||||
description: "Описание для gpg ключа"
|
||||
validate:
|
||||
- rule: "regex_match(gpg_note,`^[a-zA-Z0-9 .-]*$`)"
|
||||
message: "Только латинские буквы, цифры, -, _, ' ' либо пустое"
|
||||
- name: "gpg mail"
|
||||
variable-name: "gpg_mail"
|
||||
field-type: "input"
|
||||
description: "Почта для gpg ключа"
|
||||
validate:
|
||||
- rule: "gpg_mail!=''"
|
||||
message: "Поле не может быть пустым"
|
||||
- rule: "regex_match(gpg_mail,`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$`)"
|
||||
message: "Не соответствует формату почты"
|
||||
actions:
|
||||
- name: "generate gpg key"
|
||||
type: "command"
|
||||
command: "sudo -u {{.repko_user}} gpg --homedir /var/lib/repko/gnupg --batch --passphrase '' --quick-generate-key '{.gpg_full_name} ({.gpg_note}) <{.gpg_mail}>' rsa4096"
|
||||
error: "Не удалось создать ключ"
|
||||
- name: "get gpg key id"
|
||||
type: "command"
|
||||
command: "sudo -u {{.repko_user}} gpg --homedir /var/lib/repko/gnupg --list-keys --with-colons | grep pub | cut -d: -f5 > /etc/repko/keyid"
|
||||
error: "Не удалось получить и сохранить id gpg ключа"
|
||||
- name: "paths"
|
||||
description: "Настройка директорий"
|
||||
fields:
|
||||
|
|
|
|||
|
|
@ -65,8 +65,17 @@ func CheckCondition(condition string, app *types.PackageApplication) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
result, err := expr.Eval(condition, ParamsForCondition(app))
|
||||
|
||||
params := ParamsForCondition(app)
|
||||
options := append([]expr.Option{
|
||||
expr.Env(params),
|
||||
expr.AllowUndefinedVariables(),
|
||||
}, DefineExprCustomFunctions()...)
|
||||
program, err := expr.Compile(condition, options...)
|
||||
if err != nil {
|
||||
logrus.Errorf("ошибка компиляции compute: %v", err)
|
||||
return false
|
||||
}
|
||||
result, err := expr.Run(program, params)
|
||||
if err != nil {
|
||||
logrus.Errorf("Ошибка в условии '%s': %v", condition, err)
|
||||
return false
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue