Unverified Commit 2b769fbd authored by Philipp Winter's avatar Philipp Winter
Browse files

Add shell script that takes care of everything.

parent 87dae4b0
Loading
Loading
Loading
Loading

create-plots.sh

0 → 100755
+143 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash

# Directory where our plots are written to.
PLOT_OUTPUT=plots
# Directory where our CSV input files are coming from.
PLOT_INPUT=raw-plot-files
# Directory where our original metrics file are.
METRICS_FILES=metrics-files

mkdir -p "$PLOT_INPUT" "$PLOT_OUTPUT"

function extract_metrics {
    output=$1
    type=$2
    dist=$3
    origin=$4
    success=$5

    echo "timestamp,lower,upper" > "$output"
    for file in $(ls $METRICS_FILES/*)
    do
        bridgedb-metrics-parser \
            -b "$type" \
            -d "$dist" \
            -o "$origin" \
            -s "$success" \
            -f "$file" >> "$output"
    done
}

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/Obfs4"
CSV_FILE2="$PLOT_INPUT/Obfs3"
CSV_FILE3="$PLOT_INPUT/Vanilla"
CSV_FILE4="$PLOT_INPUT/ScrambleSuit"
CSV_FILE5="$PLOT_INPUT/FTE"

extract_metrics "$CSV_FILE1" "obfs4" "" "^[^z][^z]$" ""
extract_metrics "$CSV_FILE2" "obfs3" "" "^[^z][^z]$" ""
extract_metrics "$CSV_FILE3" "vanilla" "" "^[^z][^z]$" ""
extract_metrics "$CSV_FILE4" "scramblesuit" "" "^[^z][^z]$" ""
extract_metrics "$CSV_FILE5" "fte" "" "^[^z][^z]$" ""

./plot-bridgedb-metrics.R -t "Requests per bridge type without Tor over HTTPS" \
                          -o "${PLOT_OUTPUT}/bridge-types-nontor.png" \
                          "$CSV_FILE1" "$CSV_FILE2" "$CSV_FILE3" "$CSV_FILE4" \
                          "$CSV_FILE5"

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/Obfs4"
CSV_FILE2="$PLOT_INPUT/Obfs3"
CSV_FILE3="$PLOT_INPUT/Vanilla"
CSV_FILE4="$PLOT_INPUT/ScrambleSuit"
CSV_FILE5="$PLOT_INPUT/FTE"

extract_metrics "$CSV_FILE1" "obfs4" "" "" ""
extract_metrics "$CSV_FILE2" "obfs3" "" "" ""
extract_metrics "$CSV_FILE3" "vanilla" "" "" ""
extract_metrics "$CSV_FILE4" "scramblesuit" "" "" ""
extract_metrics "$CSV_FILE5" "fte" "" "" ""

./plot-bridgedb-metrics.R -t "Requests per bridge type" \
                          -o "${PLOT_OUTPUT}/bridge-types.png" \
                          "$CSV_FILE1" "$CSV_FILE2" "$CSV_FILE3" "$CSV_FILE4" \
                          "$CSV_FILE5"

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/HTTPS"
CSV_FILE2="$PLOT_INPUT/Email"
CSV_FILE3="$PLOT_INPUT/Moat"

extract_metrics "$CSV_FILE1" "" "https" "" ""
extract_metrics "$CSV_FILE2" "" "email" "" ""
extract_metrics "$CSV_FILE3" "" "moat" "" ""

./plot-bridgedb-metrics.R -t "Distribution mechanisms" \
                          -o "${PLOT_OUTPUT}/distribution-mechanisms.png" \
                          "$CSV_FILE1" "$CSV_FILE2" "$CSV_FILE3"

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/HTTPS"
CSV_FILE2="$PLOT_INPUT/Email"
CSV_FILE3="$PLOT_INPUT/Moat"

extract_metrics "$CSV_FILE1" "" "https" "^[^z][^z]$" ""
extract_metrics "$CSV_FILE2" "" "email" "" ""
extract_metrics "$CSV_FILE3" "" "moat" "" ""

./plot-bridgedb-metrics.R -t "Distribution mechanisms without Tor over HTTPS" \
                          -o "${PLOT_OUTPUT}/distribution-mechanisms-notor.png" \
                          "$CSV_FILE1" "$CSV_FILE2" "$CSV_FILE3"

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/Success"
CSV_FILE2="$PLOT_INPUT/Fail"

extract_metrics "$CSV_FILE1" "" "email" "" "success"
extract_metrics "$CSV_FILE2" "" "email" "" "fail"

./plot-bridgedb-metrics.R -t "(Un)successful email requests" \
                          -o "${PLOT_OUTPUT}/(un)successful-email.png" \
                          "$CSV_FILE1" "$CSV_FILE2"

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/Success"
CSV_FILE2="$PLOT_INPUT/Fail"

extract_metrics "$CSV_FILE1" "" "moat" "" "success"
extract_metrics "$CSV_FILE2" "" "moat" "" "fail"

./plot-bridgedb-metrics.R -t "(Un)successful moat requests" \
                          -o "${PLOT_OUTPUT}/(un)successful-moat.png" \
                          "$CSV_FILE1" "$CSV_FILE2"

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/Success"
CSV_FILE2="$PLOT_INPUT/Fail"

extract_metrics "$CSV_FILE1" "" "https" "^[^z][^z]$" "success"
extract_metrics "$CSV_FILE2" "" "https" "^[^z][^z]$" "fail"

./plot-bridgedb-metrics.R -t "(Un)successful HTTPS requests (not over Tor)" \
                          -o "${PLOT_OUTPUT}/(un)successful-nontor-https.png" \
                          "$CSV_FILE1" "$CSV_FILE2"

#-------------------------------------------------------------------------------

CSV_FILE1="$PLOT_INPUT/Success"
CSV_FILE2="$PLOT_INPUT/Fail"

extract_metrics "$CSV_FILE1" "" "https" "zz" "success"
extract_metrics "$CSV_FILE2" "" "https" "zz" "fail"

./plot-bridgedb-metrics.R -t "(Un)successful HTTPS requests (over Tor)" \
                          -o "${PLOT_OUTPUT}/(un)successful-tor-https.png" \
                          "$CSV_FILE1" "$CSV_FILE2"