progress
This commit is contained in:
5
scripts/CreateRoutes.py
Executable file
5
scripts/CreateRoutes.py
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
import yaml
|
||||||
|
f = open('rules.yaml')
|
||||||
|
dohicky = yaml.safe_load(f)
|
||||||
|
f.close()
|
||||||
83
scripts/ReadYaml.sh
Executable file
83
scripts/ReadYaml.sh
Executable file
@@ -0,0 +1,83 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# shellcheck disable=SC1003
|
||||||
|
|
||||||
|
# Based on https://gist.github.com/pkuczynski/8665367
|
||||||
|
|
||||||
|
parse_yaml() {
|
||||||
|
local yaml_file=$1
|
||||||
|
local prefix=$2
|
||||||
|
local s
|
||||||
|
local w
|
||||||
|
local fs
|
||||||
|
|
||||||
|
s='[[:space:]]*'
|
||||||
|
w='[a-zA-Z0-9_.-]*'
|
||||||
|
fs="$(echo @|tr @ '\034')"
|
||||||
|
|
||||||
|
(
|
||||||
|
sed -e '/- [^\“]'"[^\']"'.*: /s|\([ ]*\)- \([[:space:]]*\)|\1-\'$'\n'' \1\2|g' |
|
||||||
|
|
||||||
|
sed -ne '/^--/s|--||g; s|\"|\\\"|g; s/[[:space:]]*$//g;' \
|
||||||
|
-e "/#.*[\"\']/!s| #.*||g; /^#/s|#.*||g;" \
|
||||||
|
-e "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
|
||||||
|
-e "s|^\($s\)\($w\)${s}[:-]$s\(.*\)$s\$|\1$fs\2$fs\3|p" |
|
||||||
|
|
||||||
|
awk -F"$fs" '{
|
||||||
|
indent = length($1)/2;
|
||||||
|
if (length($2) == 0) { conj[indent]="+";} else {conj[indent]="";}
|
||||||
|
vname[indent] = $2;
|
||||||
|
for (i in vname) {if (i > indent) {delete vname[i]}}
|
||||||
|
if (length($3) > 0) {
|
||||||
|
vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
|
||||||
|
printf("%s%s%s%s=(\"%s\")\n", "'"$prefix"'",vn, $2, conj[indent-1],$3);
|
||||||
|
}
|
||||||
|
}' |
|
||||||
|
|
||||||
|
sed -e 's/_=/+=/g' |
|
||||||
|
|
||||||
|
awk 'BEGIN {
|
||||||
|
FS="=";
|
||||||
|
OFS="="
|
||||||
|
}
|
||||||
|
/(-|\.).*=/ {
|
||||||
|
gsub("-|\\.", "_", $1)
|
||||||
|
}
|
||||||
|
{ print }'
|
||||||
|
) < "$yaml_file"
|
||||||
|
}
|
||||||
|
|
||||||
|
create_variables() {
|
||||||
|
local yaml_file="$1"
|
||||||
|
local prefix="$2"
|
||||||
|
eval "$(parse_yaml "$yaml_file" "$prefix")"
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_yaml rules.yaml
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
yaml() {
|
||||||
|
python3 -c "import yaml;print(yaml.load(open('$1'))$2)"
|
||||||
|
}
|
||||||
|
|
||||||
|
yaml rules.yaml
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
VALUE=$(yaml ~/my_yaml_file.yaml "['a_key']")
|
||||||
|
function parse_yaml {
|
||||||
|
local prefix=$2
|
||||||
|
local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
|
||||||
|
sed -ne "s|^\($s\):|\1|" \
|
||||||
|
-e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \
|
||||||
|
-e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 |
|
||||||
|
awk -F$fs '{
|
||||||
|
indent = length($1)/2;
|
||||||
|
vname[indent] = $2;
|
||||||
|
for (i in vname) {if (i > indent) {delete vname[i]}}
|
||||||
|
if (length($3) > 0) {
|
||||||
|
vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
|
||||||
|
printf("%s%s%s=\"%s\"\n", "'$prefix'",vn, $2, $3);
|
||||||
|
}
|
||||||
|
}'
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_yaml rules.yaml
|
||||||
@@ -1,206 +1,207 @@
|
|||||||
---
|
---
|
||||||
items:
|
items:
|
||||||
- actions:
|
- 5ce42a14bf802e0001684668:
|
||||||
|
actions:
|
||||||
- store()
|
- store()
|
||||||
- stop()
|
- stop()
|
||||||
description: Suppression UDEMY
|
description: Suppression UDEMY
|
||||||
expression: match_recipient("iwan*.udemy@mg.*.space")
|
expression: match_recipient("iwan*.udemy@mg.*.space")
|
||||||
id: 5ce42a14bf802e0001684668
|
|
||||||
priority: 0
|
priority: 0
|
||||||
- actions:
|
- 5cd48c308b3cd70001f79bfb:
|
||||||
|
actions:
|
||||||
- forward("nadinepub.clement@free.fr")
|
- forward("nadinepub.clement@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: EU domains for Nadine
|
description: EU domains for Nadine
|
||||||
expression: match_recipient("nadine.*@mg.*.eu")
|
expression: match_recipient("nadine.*@mg.*.eu")
|
||||||
id: 5cd48c308b3cd70001f79bfb
|
|
||||||
priority: 0
|
priority: 0
|
||||||
- actions:
|
- 5cd48b47a4764a00013cee72:
|
||||||
|
actions:
|
||||||
- forward("iwan.clement@gmx.fr")
|
- forward("iwan.clement@gmx.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: EU domains
|
description: EU domains
|
||||||
expression: match_recipient("iwan.*@mg.*.eu")
|
expression: match_recipient("iwan.*@mg.*.eu")
|
||||||
id: 5cd48b47a4764a00013cee72
|
|
||||||
priority: 0
|
priority: 0
|
||||||
- actions:
|
- 5db1e61d11c830a64e8e2dba:
|
||||||
|
actions:
|
||||||
- forward("iwan.clement@mail.fr")
|
- forward("iwan.clement@mail.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: iwanpub@mg.*.eu
|
description: iwanpub@mg.*.eu
|
||||||
expression: match_recipient("iwanpub.*@mg.*.eu")
|
expression: match_recipient("iwanpub.*@mg.*.eu")
|
||||||
id: 5db1e61d11c830a64e8e2dba
|
|
||||||
priority: 1
|
priority: 1
|
||||||
- actions:
|
- 5ce18c92629574000195c8de:
|
||||||
|
actions:
|
||||||
- forward("iwan.pubclement@gmx.fr")
|
- forward("iwan.pubclement@gmx.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Tout ce qui arrive sur le domaine pour mg.iwanclement.eu
|
description: Tout ce qui arrive sur le domaine pour mg.iwanclement.eu
|
||||||
expression: match_recipient(".*@mg.iade-lyon.eu")
|
expression: match_recipient(".*@mg.iade-lyon.eu")
|
||||||
id: 5ce18c92629574000195c8de
|
|
||||||
priority: 2
|
priority: 2
|
||||||
- actions:
|
- 5ca2330d6295740001322814:
|
||||||
|
actions:
|
||||||
- forward("iwan.pubclement@mail.fr, nadinepub.clement@free.fr")
|
- forward("iwan.pubclement@mail.fr, nadinepub.clement@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: LIDL
|
description: LIDL
|
||||||
expression: match_recipient("iwanpub.lidl@mg.*.space")
|
expression: match_recipient("iwanpub.lidl@mg.*.space")
|
||||||
id: 5ca2330d6295740001322814
|
|
||||||
priority: 2
|
priority: 2
|
||||||
- actions:
|
- 5c726e2f8b3cd70001237ee5:
|
||||||
|
actions:
|
||||||
- forward("nadineclement@mail.fr")
|
- forward("nadineclement@mail.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Tout pour Nadine Clement
|
description: Tout pour Nadine Clement
|
||||||
expression: match_recipient(".*@mg.iade-lyon.eu")
|
expression: match_recipient(".*@mg.iade-lyon.eu")
|
||||||
id: 5c726e2f8b3cd70001237ee5
|
|
||||||
priority: 2
|
priority: 2
|
||||||
- actions:
|
- 5c570e59bf802e00012989e9:
|
||||||
|
actions:
|
||||||
- forward("iwanpro.clement@free.fr")
|
- forward("iwanpro.clement@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Iwan Professionnel
|
description: Iwan Professionnel
|
||||||
expression: match_recipient("iwanpro.*@mg.*.space")
|
expression: match_recipient("iwanpro.*@mg.*.space")
|
||||||
id: 5c570e59bf802e00012989e9
|
|
||||||
priority: 2
|
priority: 2
|
||||||
- actions:
|
- 5baa01368ecd8700013c5010:
|
||||||
|
actions:
|
||||||
- forward("nadineclement@mail.fr")
|
- forward("nadineclement@mail.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Tout pour Nadine Clement
|
description: Tout pour Nadine Clement
|
||||||
expression: match_recipient(".*@mg.nadineclement.eu")
|
expression: match_recipient(".*@mg.nadineclement.eu")
|
||||||
id: 5baa01368ecd8700013c5010
|
|
||||||
priority: 2
|
priority: 2
|
||||||
- actions:
|
- 5b6d4d826295740001913849:
|
||||||
|
actions:
|
||||||
- forward("aristide1clement@gmail.com,iwan.clement@free.fr")
|
- forward("aristide1clement@gmail.com,iwan.clement@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Aristide MG
|
description: Aristide MG
|
||||||
expression: match_recipient("aristidepub.*@mg.*.space")
|
expression: match_recipient("aristidepub.*@mg.*.space")
|
||||||
id: 5b6d4d826295740001913849
|
|
||||||
priority: 2
|
priority: 2
|
||||||
- actions:
|
- 5b6d4c278b3cd70001ebdfda:
|
||||||
|
actions:
|
||||||
- forward("iwanadm@free.fr")
|
- forward("iwanadm@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: ''
|
description: ''
|
||||||
expression: match_recipient("backup.*@mg.*.space")
|
expression: match_recipient("backup.*@mg.*.space")
|
||||||
id: 5b6d4c278b3cd70001ebdfda
|
|
||||||
priority: 2
|
priority: 2
|
||||||
- actions:
|
- 5c5499376295740001fe1e27:
|
||||||
|
actions:
|
||||||
- forward("iwanadm@free.fr")
|
- forward("iwanadm@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: applications
|
description: applications
|
||||||
expression: match_recipient("iwanapp.*@mg.*.space")
|
expression: match_recipient("iwanapp.*@mg.*.space")
|
||||||
id: 5c5499376295740001fe1e27
|
|
||||||
priority: 3
|
priority: 3
|
||||||
- actions:
|
- 5c5343c345d85900018ceee6:
|
||||||
|
actions:
|
||||||
- forward("iwan.pubclement@gmx.fr")
|
- forward("iwan.pubclement@gmx.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: pour les jobs.
|
description: pour les jobs.
|
||||||
expression: match_recipient("iwanjob.*@mg.*.space")
|
expression: match_recipient("iwanjob.*@mg.*.space")
|
||||||
id: 5c5343c345d85900018ceee6
|
|
||||||
priority: 3
|
priority: 3
|
||||||
- actions:
|
- 5c5eb3376295740001546abf:
|
||||||
|
actions:
|
||||||
- forward("nadinepub.clement@free.fr")
|
- forward("nadinepub.clement@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Les pubs pour Nadine
|
description: Les pubs pour Nadine
|
||||||
expression: match_recipient("nadinepub.*@mg.*.space")
|
expression: match_recipient("nadinepub.*@mg.*.space")
|
||||||
id: 5c5eb3376295740001546abf
|
|
||||||
priority: 4
|
priority: 4
|
||||||
- actions:
|
- 5c534e78bf802e00013232e5:
|
||||||
|
actions:
|
||||||
- forward("iwan.pubclement@gmx.fr")
|
- forward("iwan.pubclement@gmx.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Iwanpub
|
description: Iwanpub
|
||||||
expression: match_recipient("iwanpub.*@mg.*.space")
|
expression: match_recipient("iwanpub.*@mg.*.space")
|
||||||
id: 5c534e78bf802e00013232e5
|
|
||||||
priority: 4
|
priority: 4
|
||||||
- actions:
|
- 5bbe45dc6295740001b26ffd:
|
||||||
|
actions:
|
||||||
- forward("iwanadm@free.fr")
|
- forward("iwanadm@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: admin.qqchose
|
description: admin.qqchose
|
||||||
expression: match_recipient("admin.*@mg.*.space")
|
expression: match_recipient("admin.*@mg.*.space")
|
||||||
id: 5bbe45dc6295740001b26ffd
|
|
||||||
priority: 4
|
priority: 4
|
||||||
- actions:
|
- 5b9b758aa4764a000133bfbe:
|
||||||
|
actions:
|
||||||
- forward("iwanadm@free.fr")
|
- forward("iwanadm@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: ''
|
description: ''
|
||||||
expression: match_recipient("proxmox.*@mg.*.space")
|
expression: match_recipient("proxmox.*@mg.*.space")
|
||||||
id: 5b9b758aa4764a000133bfbe
|
|
||||||
priority: 4
|
priority: 4
|
||||||
- actions:
|
- 5bae76a745d8590001287978:
|
||||||
|
actions:
|
||||||
- forward("iwanadm@free.fr")
|
- forward("iwanadm@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: ''
|
description: ''
|
||||||
expression: match_recipient("adm.*@mg.*.space")
|
expression: match_recipient("adm.*@mg.*.space")
|
||||||
id: 5bae76a745d8590001287978
|
|
||||||
priority: 5
|
priority: 5
|
||||||
- actions:
|
- 5b8d79f98b3cd700019d5205:
|
||||||
|
actions:
|
||||||
- forward("ivan.pubclement@free.fr")
|
- forward("ivan.pubclement@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: aristide chez Sosh
|
description: aristide chez Sosh
|
||||||
expression: match_recipient("aristide.sosh@mg.*.space")
|
expression: match_recipient("aristide.sosh@mg.*.space")
|
||||||
id: 5b8d79f98b3cd700019d5205
|
|
||||||
priority: 5
|
priority: 5
|
||||||
- actions:
|
- 5b799e80a4764a000192cf3b:
|
||||||
|
actions:
|
||||||
- forward("iwanadm@free.fr")
|
- forward("iwanadm@free.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: Pour Piwigo
|
description: Pour Piwigo
|
||||||
expression: match_recipient("iwanadm@free.fr")
|
expression: match_recipient("iwanadm@free.fr")
|
||||||
id: 5b799e80a4764a000192cf3b
|
|
||||||
priority: 5
|
priority: 5
|
||||||
- actions:
|
- 5c726e7e8ecd870001264998:
|
||||||
|
actions:
|
||||||
- forward("aristide1clement@gmail.com")
|
- forward("aristide1clement@gmail.com")
|
||||||
- stop()
|
- stop()
|
||||||
description: ''
|
description: ''
|
||||||
expression: match_recipient("aristide.*@mg.*.space")
|
expression: match_recipient("aristide.*@mg.*.space")
|
||||||
id: 5c726e7e8ecd870001264998
|
|
||||||
priority: 6
|
priority: 6
|
||||||
- actions:
|
- 5c726b408ecd870001264739:
|
||||||
|
actions:
|
||||||
- forward("gwladys.clement@gmail.com")
|
- forward("gwladys.clement@gmail.com")
|
||||||
- stop()
|
- stop()
|
||||||
description: Gwladys.qqc
|
description: Gwladys.qqc
|
||||||
expression: match_recipient("gwladys.*@mg.*.space")
|
expression: match_recipient("gwladys.*@mg.*.space")
|
||||||
id: 5c726b408ecd870001264739
|
|
||||||
priority: 6
|
priority: 6
|
||||||
- actions:
|
- 5c726b19bf802e000162d921:
|
||||||
|
actions:
|
||||||
- forward("ophelie.clement@gmail.com")
|
- forward("ophelie.clement@gmail.com")
|
||||||
- stop()
|
- stop()
|
||||||
description: Tout Ophelie.qqc
|
description: Tout Ophelie.qqc
|
||||||
expression: match_recipient("ophelie.*@mg.*.space")
|
expression: match_recipient("ophelie.*@mg.*.space")
|
||||||
id: 5c726b19bf802e000162d921
|
|
||||||
priority: 6
|
priority: 6
|
||||||
- actions:
|
- 5c419a518b3cd70001c5ddea:
|
||||||
|
actions:
|
||||||
- forward("iwan.clement@gmx.fr")
|
- forward("iwan.clement@gmx.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: ''
|
description: ''
|
||||||
expression: match_recipient("iwan.*@mg.*.space")
|
expression: match_recipient("iwan.*@mg.*.space")
|
||||||
id: 5c419a518b3cd70001c5ddea
|
|
||||||
priority: 6
|
priority: 6
|
||||||
- actions:
|
- 5b8a5bcd8b3cd700017130ed:
|
||||||
|
actions:
|
||||||
- forward("emmanuellelou@gmail.com")
|
- forward("emmanuellelou@gmail.com")
|
||||||
- stop()
|
- stop()
|
||||||
description: MG Emmanuelle Clément
|
description: MG Emmanuelle Clément
|
||||||
expression: match_recipient("emmanuelle.*@mg.*.space")
|
expression: match_recipient("emmanuelle.*@mg.*.space")
|
||||||
id: 5b8a5bcd8b3cd700017130ed
|
|
||||||
priority: 6
|
priority: 6
|
||||||
- actions:
|
- 5ce18d97bf802e00019eaace:
|
||||||
|
actions:
|
||||||
- forward("sandrine.peinnequin@gmail.com")
|
- forward("sandrine.peinnequin@gmail.com")
|
||||||
- stop()
|
- stop()
|
||||||
description: Sandrine Peinnequin
|
description: Sandrine Peinnequin
|
||||||
expression: match_recipient("sandrine.*@mg.*.space")
|
expression: match_recipient("sandrine.*@mg.*.space")
|
||||||
id: 5ce18d97bf802e00019eaace
|
|
||||||
priority: 8
|
priority: 8
|
||||||
- actions:
|
- 5ce18cf4a4764a0001d95b58:
|
||||||
|
actions:
|
||||||
- forward("bruno.joachim@gmail.com")
|
- forward("bruno.joachim@gmail.com")
|
||||||
- stop()
|
- stop()
|
||||||
description: Bruno Joachim
|
description: Bruno Joachim
|
||||||
expression: match_recipient("bruno.*@mg.*.space")
|
expression: match_recipient("bruno.*@mg.*.space")
|
||||||
id: 5ce18cf4a4764a0001d95b58
|
|
||||||
priority: 8
|
priority: 8
|
||||||
- actions:
|
- 5baf5ac78b3cd70001ebae82:
|
||||||
|
actions:
|
||||||
- forward("stephane.guillot_32@kindle.com")
|
- forward("stephane.guillot_32@kindle.com")
|
||||||
- stop()
|
- stop()
|
||||||
description: Kindle de Stephane
|
description: Kindle de Stephane
|
||||||
expression: match_recipient("kindle.stephane@mg.*.space")
|
expression: match_recipient("kindle.stephane@mg.*.space")
|
||||||
id: 5baf5ac78b3cd70001ebae82
|
|
||||||
priority: 8
|
priority: 8
|
||||||
- actions:
|
- 5b6cbd328b3cd70001eb4eb2:
|
||||||
|
actions:
|
||||||
- forward("iwan.pubclement@gmx.fr")
|
- forward("iwan.pubclement@gmx.fr")
|
||||||
- stop()
|
- stop()
|
||||||
description: On ramasse tout
|
description: On ramasse tout
|
||||||
expression: catch_all()
|
expression: catch_all()
|
||||||
id: 5b6cbd328b3cd70001eb4eb2
|
id:
|
||||||
priority: 10
|
priority: 10
|
||||||
...
|
...
|
||||||
Reference in New Issue
Block a user