From 1b85d77e9e9c72ac8e99839884222b42e99a5547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Budiseli=C4=87?= Date: Sun, 18 Jun 2023 11:57:46 +0200 Subject: [PATCH] Add cypherl transform scripts under `import/` (#773) * Add `mglogs2cypherl.sh` * Add `n2mg_cypherl.sh` --- import/mglogs2cypherl.sh | 26 ++++++++++++++++++++++++++ import/n2mg_cypherl.sh | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100755 import/mglogs2cypherl.sh create mode 100755 import/n2mg_cypherl.sh diff --git a/import/mglogs2cypherl.sh b/import/mglogs2cypherl.sh new file mode 100755 index 000000000..0312cbf8d --- /dev/null +++ b/import/mglogs2cypherl.sh @@ -0,0 +1,26 @@ +#!/bin/bash -e +COLOR_ORANGE="\e[38;5;208m" +COLOR_GREEN="\e[38;5;35m" +COLOR_RED="\e[0;31m" +COLOR_NULL="\e[0m" + +print_help() { + echo -e "${COLOR_ORANGE}HOW TO RUN:${COLOR_NULL} $0 memgraph_logs_file_path cypherl_output_path" + exit 1 +} + +if [ "$#" -ne 2 ]; then + print_help +fi +INPUT="$1" +OUTPUT="$2" +if [ ! -f "$INPUT" ]; then + echo -e "${COLOR_RED}ERROR:${COLOR_NULL} memgraph_logs_file_path is not a file!" + print_help +fi + +awk -v RS="Run] '" 'NR>1 { print $0 }' < "$INPUT" | sed -e "/^\[/d;" -e "s/'\([^']*\)$/;/g" > "$OUTPUT" + +echo -e "${COLOR_GREEN}DONE!${COLOR_NULL} Please find Memgraph compatible cypherl file under $OUTPUT" +echo "" +echo "Import can be done by executing => \`cat $OUTPUT | mgconsole\`" diff --git a/import/n2mg_cypherl.sh b/import/n2mg_cypherl.sh new file mode 100755 index 000000000..b11f5d3e3 --- /dev/null +++ b/import/n2mg_cypherl.sh @@ -0,0 +1,35 @@ +#!/bin/bash -e +COLOR_ORANGE="\e[38;5;208m" +COLOR_GREEN="\e[38;5;35m" +COLOR_RED="\e[0;31m" +COLOR_NULL="\e[0m" + +print_help() { + echo -e "${COLOR_ORANGE}HOW TO RUN:${COLOR_NULL} $0 input_file_path output_file_path" + exit 1 +} + +if [ "$#" -ne 2 ]; then + print_help +fi +INPUT="$1" +OUTPUT="$2" +if [ ! -f "$INPUT" ]; then + echo -e "${COLOR_RED}ERROR:${COLOR_NULL} input_file_path is not a file!" + print_help +fi + +echo -e "${COLOR_ORANGE}NOTE:${COLOR_NULL} BEGIN and COMMIT are required because variables share the same name (e.g. row)" +echo -e "${COLOR_ORANGE}NOTE:${COLOR_NULL} CONSTRAINTS are just skipped -> ${COLOR_RED}please create consraints manually if needed${COLOR_NULL}" + +sed -e 's/^:begin/BEGIN/g; s/^BEGIN$/BEGIN;/g;' \ + -e 's/^:commit/COMMIT/g; s/^COMMIT$/COMMIT;/g;' \ + -e '/^CALL/d; /^SCHEMA AWAIT/d;' \ + -e 's/CREATE RANGE INDEX FOR (n:/CREATE INDEX ON :/g;' \ + -e 's/) ON (n./(/g;' \ + -e '/^CREATE CONSTRAINT/d; /^DROP CONSTRAINT/d;' "$INPUT" > "$OUTPUT" + +echo "" +echo -e "${COLOR_GREEN}DONE!${COLOR_NULL} Please find Memgraph compatible cypherl|.cypher file under $OUTPUT" +echo "" +echo "Please import data by executing => \`cat $OUTPUT | mgconsole\`"