Feature 10892/10893/8460: refactor of OSM installer
[osm/devops.git] / common / track
diff --git a/common/track b/common/track
new file mode 100644 (file)
index 0000000..627c680
--- /dev/null
@@ -0,0 +1,86 @@
+#!/bin/bash
+# This file is meant to be SOURCED
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+
+function track(){
+# Tracks events by sending HTTP GET requests with query strings to a web server
+# - First argument: event name
+# - Rest of arguments (if they exist): tuples of operation-value-comment-tags
+#   - operation: particular operation in an event (if it is not provided, the operation will be named after the event)
+#   - value: particular value for an operation
+#   - comment
+#     - none will be passed when empty
+#     - will be parsed to replace spaces by underscores
+#   - tags
+#     - none will be passed when empty
+#     - will be parsed to replace spaces by ~
+
+    if [ $# -lt 1 ]; then
+        echo "Unexpected error in track function. At least 1 arg is expected: event"
+        return 1
+    fi
+
+    osm_track_event_name=$1
+
+    ctime=`date +%s`
+
+    query_string=""
+    query_string="${query_string}&installation_id=${OSM_TRACK_INSTALLATION_ID}"
+    query_string="${query_string}&local_ts=${ctime}"
+    query_string="${query_string}&event=${osm_track_event_name}"
+
+    shift 1
+    if [ $# -eq 0 ]; then
+        operation="${osm_track_event_name}"
+        value=""
+        comment=""
+        tags=""
+        final_query_string="${query_string}"
+        final_query_string="${final_query_string}&operation=${operation}"
+        final_query_string="${final_query_string}&value=${value}"
+        final_query_string="${final_query_string}&comment=${comment}"
+        final_query_string="${final_query_string}&tags=${tags}"
+        url="https://osm.etsi.org/InstallLog.php?${final_query_string}"
+        echo "Track $osm_track_event_name $operation: ${url}"
+        wget -q -O /dev/null $url
+    else
+        while (( "$#" > 0 )); do
+            operation="${1:-${osm_track_event_name}}"
+            shift 1
+            value="${1:-}"
+            shift 1
+            comment="${1:-}"
+            shift 1
+            comment="${comment// /_}"
+            tags="${1:-}"
+            shift 1
+            tags="${tags//,/\~}"
+            [ "$value" == "none" ] && value=""
+            [ "$comment" == "none" ] && comment=""
+            [ "$tags" == "none" ] && tags=""
+            final_query_string="${query_string}"
+            final_query_string="${final_query_string}&operation=${operation}"
+            final_query_string="${final_query_string}&value=${value}"
+            final_query_string="${final_query_string}&comment=${comment}"
+            final_query_string="${final_query_string}&tags=${tags}"
+            url="https://osm.etsi.org/InstallLog.php?${final_query_string}"
+            echo "Track $osm_track_event_name $operation: ${url}"
+            wget -q -O /dev/null $url
+        done
+    fi
+    return 0
+}
+
+