From 6f5282c7ed6e0924e1e6dd35b61a8d66e4fb2777 Mon Sep 17 00:00:00 2001 From: Cristian Weiland <cw14@inf.ufpr.br> Date: Wed, 1 Feb 2017 10:20:02 -0200 Subject: [PATCH] Improve README and create argument number check in scripts Signed-off-by: Cristian Weiland <cw14@inf.ufpr.br> --- README.md | 18 ++++++++++++++++++ insert_data.sh | 6 +++++- resumo_cadastro.sh | 43 ++++++++++++++++--------------------------- 3 files changed, 39 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index e69de29..64ac6cc 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,18 @@ +Projeto utilizando ElasticSearch + Kibana na tentativa de auxiliar a transparência da Universidade Federal do Paraná (UFPR). + +Ãrvore de Diretórios: + +. +├── Dados\_Servidores - Contém uma diretório para cada mês. +│  ├── 2016-12 - Diretório que contém os CSVs referentes a Dezembro de 2016. +│  ├── 2016-11 - Diretório que contém os CSVs referentes a Novembro de 2016. +│  ├── ... +│  └── Processados - Diretório que contém CSVs resultantes da união de CSVs do portal transparência. +├── configs - Diretório com arquivos de configuração para unir CSVs do portal transparência em um só, que é inserido no Kibana/ElasticSearch. +├── config.json.example - Exemplo de arquivo do diretório 'configs'. +├── logstash\_configs - Diretório com arquivos de configuração do Logstash para inserção de dados no Kibana/ElasticSearch. +├── logstash\_config.example - Exemplo de arquivo do diretório 'logstash\_configs'. É usado pelo script 'create\_config.py' para gerar o arquivo de configuração do logstash. +├── create\_config.py - Script que cria arquivos de configuração que ficam contidos nos diretórios 'configs' e 'logstash\_configs'. +├── resumo\_cadastro.sh - Script que filtra dados do CSV de Cadastro do Portal Transparência, selecionando dados das Universidades interessantes para este projeto. +├── merge\_files\_es.py - Script que usa um arquivo de configuração do diretório 'configs' para unir dois CSVs (Cadastro e Remuneração) do portal transparência em um só e salvá-lo no diretório Dados\_Servidores/Processados +└── insert\_data.sh - Script que gerencia os outros scripts. diff --git a/insert_data.sh b/insert_data.sh index 01a6924..d1dc65f 100755 --- a/insert_data.sh +++ b/insert_data.sh @@ -1,6 +1,10 @@ #!/bin/bash -echo "Usage: $0 <year> <month> <day>" +if [ "$#" -ne 3 ]; then + echo "Usage: $0 <year> <month> <day>" + echo "Example: $0 2016 12 01" + exit +fi ./create_config.py $1 $2 $3 ./merge_files_es.py configs/config-${1}-${2}.json diff --git a/resumo_cadastro.sh b/resumo_cadastro.sh index d79d524..532d791 100755 --- a/resumo_cadastro.sh +++ b/resumo_cadastro.sh @@ -2,41 +2,30 @@ path=$1 date=$2 +if [ "$#" -ne 2 ]; then + echo "Usage: $0 <path> <date>" + exit +fi + echo "Processing data with args = ${path} and ${date}" input="${path}${date}_Cadastro.csv" output="${path}${date}_Cadastro_Ufpr_Unique.csv" -# Outubro 2016 -# input="Dados_Servidores/2016-10/20161031_Cadastro.csv" -# output="Dados_Servidores/2016-10/cadastro_2016-10-31_filters_ufpr_unique.csv" - -# For now, this does not work. It does not create a properly CSV. columns="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42" -#columns="1,2,23,24" -#columns="1" - -#cat $input | grep --binary-files=text "UNIVERSIDADE FEDERAL DO PARANA" | cut -f $columns | sort | uniq > $output -# The same as above, but wrap fields in double quotes. -#cat $input | grep --binary-files=text "UNIVERSIDADE FEDERAL DO PARANA" | cut -f $columns | sort | uniq | sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/\t/"\t"/g' > $output -# Sed wraps fields in double quotes. Grep removes everyone that does not work in UFPR. Cut selects the important columns. Uniq removes repeated values. Tr removes null characters (ctrl + @). -#cat $input | grep --binary-files=text "UNIVERSIDADE FEDERAL DO PARANA" | cut -f $columns | sort | uniq | sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/\t/"\t"/g' | tr -d '\000' > $output +# About this command: +# - Sed wraps fields in double quotes. +# - Grep removes everyone that does not work in UFPR. +# - Cut selects the important columns. +# - Uniq removes repeated values. +# - Tr removes null characters (ctrl + @). -# Parece funcionar, mas pra todas as Universidades +# Get data from all universities. #cat $input | egrep --binary-files=text "(UNIVERSIDADE FED*|Id_SERVIDOR_PORTAL NOME)" | sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/\t/"\t"/g' | tr -d '\000' > $output -#cat $input | egrep --binary-files=text "(UNIVERSIDADE FEDERAL DO PARANA|Id_SERVIDOR_PORTAL NOME)" | sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/\t/"\t"/g' | tr -d '\000' > $output -#Mesmo que de cima, mas sem wrapar com " -cat $input | egrep --binary-files=text "(UNIVERSIDADE FEDERAL DO PARANA|Id_SERVIDOR_PORTAL NOME)" | tr -d '\000' > $output +# Get data only from UFPR, and wraps it in double quotes ("). +# cat $input | egrep --binary-files=text "(UNIVERSIDADE FEDERAL DO PARANA|Id_SERVIDOR_PORTAL NOME)" | sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/\t/"\t"/g' | tr -d '\000' > $output -# +--------+---------------------+--------------------------------+ -# | Column | Contains | Example | -# +--------+---------------------+--------------------------------+ -# | 1 | Id_SERVIDOR_PORTAL | 1000021 | -# | 2 | NOME | MARIA AUREA DOS SANTOS RIBEIRO | -# | 24 | COD_ORG_LOTACAO | 26241 | -# | 25 | ORG_LOTACAO | UNIVERSIDADE FEDERAL DO PARANA | -# | 29 | UORG_EXERCICIO | BL - DEPARTAMENTO DE GENETICA | Parece que é a coluna 23 na verdade... -# | 33 | JORNADA_DE_TRABALHO | 40 HORAS SEMANAIS | -# +--------+---------------------+--------------------------------+ +# Same as above, but does not wrap data in double quotes ("). +cat $input | egrep --binary-files=text "(UNIVERSIDADE FEDERAL DO PARANA|Id_SERVIDOR_PORTAL NOME)" | tr -d '\000' > $output -- GitLab