90 lines
3.0 KiB
Bash
90 lines
3.0 KiB
Bash
#!/bin/bash
|
|
|
|
#
|
|
# Nom : dataTransfert
|
|
# Autheur : ERGY13
|
|
# Propriétaire : Liberodark
|
|
# But : convertir un fichier d'entrée raw en tableau json
|
|
#
|
|
# format json
|
|
# exemple : [{"blocked":true,"flagged":true,"string":"torrent9.biz","javaClass":"com.untangle.uvm.node.GenericRule","name":null,"description":"","readOnly":null,"id":17,"category":null,"enabled":true}]
|
|
#
|
|
|
|
# récupération de l'entrée
|
|
# fichier source
|
|
if [ -z "$1" ]; then
|
|
echo "Sytaxe : $0 <fichier d'entrée> [fichier de sortie] [itération à reprendre]"
|
|
exit 1
|
|
else
|
|
inputFile="$1"
|
|
if [ ! -e "$inputFile" ]; then
|
|
echo "Le fichier d'entrée '$inputFile' n'a pas été trouvé."
|
|
exit 1
|
|
fi ;
|
|
fi ;
|
|
# fichier cible (ou stdout)
|
|
if [ -z "$2" ]; then
|
|
outfile=""
|
|
else
|
|
outfile="$2"
|
|
if [ -e "$outfile" ]; then
|
|
echo "Faut-il supprimer le fichier '$outfile' déjà existant ? Il contient $( cat $outfile | wc -l ) lignes. (y/n)"
|
|
read reponse
|
|
if [ "$reponse" = "y" ]; then
|
|
rm -vf "$outfile"
|
|
else
|
|
echo "Écriture à la suite du fichier..."
|
|
fi ;
|
|
fi ;
|
|
fi ;
|
|
# reprises en cours en cas de besoin
|
|
if [ -z "$3" ]; then
|
|
id=0
|
|
else
|
|
id=$3
|
|
fi ;
|
|
|
|
# balises pour mettre ou pas les crochets
|
|
first_line=0
|
|
last_line=$(( $( cat $inputFile | wc -l ) - 1 ))
|
|
|
|
if [ -z "$outfile" ]; then
|
|
|
|
# sortie dans la console
|
|
while read line ; do
|
|
|
|
if [ $id -eq $first_line ]; then
|
|
# first line
|
|
echo "[{\"blocked\":true,\"flagged\":true,\"string\":\"$line\",\"javaClass\":\"com.untangle.uvm.node.GenericRule\",\"name\":null,\"description\":\"\",\"readOnly\":null,\"id\":$id,\"category\":null,\"enabled\":true},"
|
|
elif [ $id -eq $last_line ]; then
|
|
# last line
|
|
echo "{\"blocked\":true,\"flagged\":true,\"string\":\"$line\",\"javaClass\":\"com.untangle.uvm.node.GenericRule\",\"name\":null,\"description\":\"\",\"readOnly\":null,\"id\":$id,\"category\":null,\"enabled\":true}]"
|
|
else
|
|
# normal line
|
|
printf "{\"blocked\":true,\"flagged\":true,\"string\":\"$line\",\"javaClass\":\"com.untangle.uvm.node.GenericRule\",\"name\":null,\"description\":\"\",\"readOnly\":null,\"id\":$id,\"category\":null,\"enabled\":true},"
|
|
fi ;
|
|
id=$(( $id + 1 ))
|
|
|
|
done < "$inputFile"
|
|
|
|
else
|
|
|
|
# sortie dans un fichier
|
|
while read line ; do
|
|
|
|
if [ "$id" = "$first_line" ]; then
|
|
# first line
|
|
echo "[{\"blocked\":true,\"flagged\":true,\"string\":\"$line\",\"javaClass\":\"com.untangle.uvm.node.GenericRule\",\"name\":null,\"description\":\"\",\"readOnly\":null,\"id\":$id,\"category\":null,\"enabled\":true}," >> $outfile
|
|
elif [ "$id" = "$last_line" ]; then
|
|
# last line
|
|
printf "{\"blocked\":true,\"flagged\":true,\"string\":\"$line\",\"javaClass\":\"com.untangle.uvm.node.GenericRule\",\"name\":null,\"description\":\"\",\"readOnly\":null,\"id\":$id,\"category\":null,\"enabled\":true}]" >> $outfile
|
|
else
|
|
# normal line
|
|
echo "{\"blocked\":true,\"flagged\":true,\"string\":\"$line\",\"javaClass\":\"com.untangle.uvm.node.GenericRule\",\"name\":null,\"description\":\"\",\"readOnly\":null,\"id\":$id,\"category\":null,\"enabled\":true}," >> $outfile
|
|
fi ;
|
|
|
|
id=$(( $id + 1 ))
|
|
|
|
done < "$inputFile"
|
|
|
|
fi ; |