No Code
The first thing any DevOps engineer learns is a scripting language to navigate through devices, software and servers. These are exceptionally powerful and are the basics of learning development. Bash is a scripting language commonly used for programming in Linux. Linux scripts are used for automating certain programming tasks. They can also be used to simplify complex tasks and also help solve real-world problems.
Installation
You need:
- curl (curl is used in command lines or scripts to transfer data. )
- jq (jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.)
- websocat (Netcat, curl and socat for WebSockets.)
Command
The first script prints programming language used in travys built in a temp file.
websocat -S "wss://travis.durieux.me" | jq .data.language > /tmp/test.log
The second script prints do an http request on the light server based on the programming language.
export SERVER="http://192.168.0.157:8000/setcolor"
while IFS= read -r newline; do if [ $newline = "\"java\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"1\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"go\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"2\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"node_js\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"3\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"cpp\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"4\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"julia\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"5\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"c\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"6\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"python\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"7\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"ruby\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"8\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"android\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"9\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"c++\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"10\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"php\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"11\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"kotlin\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"12\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"rust\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"13\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"generic\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"14\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"elixir\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"15\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"bash\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"16\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"minimal\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"17\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"shell\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"18\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"r\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"19\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"scala\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"20\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"objective-c\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"21\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"perl\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"22\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; elif [ $newline = "\"haxe\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"23\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; else echo $newline ; curl -i -X POST -d "{\"id\": \"24\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ; fi ; done < <(tail -n 1 -f /tmp/test.log )
##Â Source to modify
while IFS= read -r newline; do if [ $newline = "\"java\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"1\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"go\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"2\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"node_js\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"3\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"cpp\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"4\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"julia\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"5\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"c\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"6\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"python\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"7\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"ruby\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"8\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"android\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"9\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"c++\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"10\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"php\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"11\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"kotlin\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"12\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"rust\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"13\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"generic\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"14\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"elixir\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"15\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"bash\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"16\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"minimal\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"17\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"shell\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"18\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"r\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"19\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"scala\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"20\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"objective-c\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"21\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"perl\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"22\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
elif [ $newline = "\"haxe\"" ] ; then echo $newline ; curl -i -X POST -d "{\"id\": \"23\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
else echo $newline ; curl -i -X POST -d "{\"id\": \"24\", \"color\": [$(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 )), $(( ( RANDOM % 254 ) + 1 ))], \"session\": \"main\"}" $SERVER ;
fi ; done < <(tail -n 1 -f test.log )