adding hardware scripts to the main repo
This commit is contained in:
parent
6db819211d
commit
d79eb74ca9
|
@ -0,0 +1,28 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
## path: /home/script/auto_cert.sh
|
||||||
|
|
||||||
|
## Fuer die manuelle Eingabe eines Geraetenamen
|
||||||
|
# echo "hallo , geben Sie ein Hostnamen fuer ihr Geraet ein"
|
||||||
|
# read CN
|
||||||
|
|
||||||
|
## Erzeugung von rsa key files
|
||||||
|
CN=$1
|
||||||
|
openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -subj "/CN=${CN}"
|
||||||
|
|
||||||
|
## Ermittlung des primary fingerprint und uebermittlung per bluetooth
|
||||||
|
Fingerprint=$(openssl x509 -noout -fingerprint -sha256 -in cert.pem | sed -e "s|:||g" | sed -e "s|SHA256||g" | sed$
|
||||||
|
echo $Fingerprint
|
||||||
|
echo "fingerprint ${Fingerprint}" > /dev/service
|
||||||
|
|
||||||
|
## Anpassung der key files und verschiebung in das zugehoerige directory
|
||||||
|
chmod 600 key.pem
|
||||||
|
chmod 600 cert.pem
|
||||||
|
Pathssl=/etc/ssl
|
||||||
|
mv key.pem $Pathssl/private
|
||||||
|
mv cert.pem $Pathssl/certs
|
||||||
|
Pathcert=$Pathssl/certs/cert.pem
|
||||||
|
Pathkey=$Pathssl/private/key.pem
|
||||||
|
|
||||||
|
## Configures the device for communication with the cloud
|
||||||
|
/home/script/auto_conf.sh -enabled true -clientid ${CN} -host mm-hfu-semesterprojekt.azure-devices.net -usetls fal$
|
|
@ -0,0 +1,320 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
eingabecheck(){
|
||||||
|
if ! [[ "$1" =~ ^[a-zA-Z0-9\/\.\:\-]+$ ]]
|
||||||
|
then
|
||||||
|
echo ERROR: at "$2": "$1" has bad characters
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
case "$3" in
|
||||||
|
bool)
|
||||||
|
if [[ "$1" != 'true' && "$1" != 'false' ]];
|
||||||
|
then
|
||||||
|
echo ERROR at "$2": "$1" must be true or false
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
cloud)
|
||||||
|
if [[ "$1" != 'Azure' && "$1" != 'ICloud' ]];
|
||||||
|
then
|
||||||
|
echo ERROR at "$2": "$1" is not a supported Cloud
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
port)
|
||||||
|
if ! [[ "$1" = [0-9]* ]];
|
||||||
|
then
|
||||||
|
echo ERROR at "$2": "$1" ist not a valid Port
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
path)
|
||||||
|
if ! [[ "$1" =~ .?\/.*\/*.+ ]];
|
||||||
|
then
|
||||||
|
echo ERROR at "$2": "$1" is not a valid Path
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
pem)
|
||||||
|
if ! [[ "$1" =~ .*\/.*.pem ]];
|
||||||
|
then
|
||||||
|
echo ERROR at "$2": "$1" needs to be a .pem file
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
flagarray=("Enabled" "CloudType" "Host" "Port" "ClientId" "User" "Password" "TransportProtocol" "KeepAliveInterval" "CleanSession"
|
||||||
|
"AuthenticationMethod" "UseTLS" "CaFile" "CertFile" "KeyFile" "ProxyType" "HttpProxyHost" "HttpProxyPort" "HttpProxyUser"
|
||||||
|
"HttpProxyPassword" "LastWillEnabled" "LastWillTopic" "LastWillPayload" "LastWillQoS" "LastWillRetain" "MessagingProtocol"
|
||||||
|
"MessageProperty" "Compression" "StandardCommandsEnabled" "SendDeviceInfo" "SendDeviceStatus" "TelemetryStopped" "CacheMode")
|
||||||
|
|
||||||
|
length=${#flagarray[@]}
|
||||||
|
|
||||||
|
for(( i=0; i < ${length}; i++)); do
|
||||||
|
|
||||||
|
counter=$(grep -n -w -m 1 "${flagarray[i]}" /etc/dataagent/dataagent.config | cut -f1 -d:)
|
||||||
|
counter=$(grep -n -w -m 1 "${flagarray[i]}" /etc/dataagent/dataagent.config | cut -f1 -d:)
|
||||||
|
erase=1
|
||||||
|
|
||||||
|
if [[ $# -gt 0 ]];
|
||||||
|
then
|
||||||
|
|
||||||
|
checkflagarray=$(echo "${flagarray[i]}" | sed "s:.*:\L&:")
|
||||||
|
checkflagoption=$(echo "$1" | sed "s:-::")
|
||||||
|
|
||||||
|
if [[ "$checkflagarray" = "$checkflagoption" ]];
|
||||||
|
then
|
||||||
|
erase=0
|
||||||
|
case "$1" in
|
||||||
|
-enabled)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-cloudtype)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" cloud
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-host)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-port)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" port
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-clientid)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-user)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-password)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-transportprotocol)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-keepaliveinterval)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-cleansession)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-authenticationmethod)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-usetls)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-cafile)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" path
|
||||||
|
sed -i "$counter s+:\s\".*\"+: \""$(echo "$1" | sed 's:/:\\\\\\/:g')"\"+" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s+:\s\".*\"+: \""$(echo "$1" | sed 's:/:\\\\\\/:g')"\"+" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-certfile)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" path
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" pem
|
||||||
|
sed -i "$counter s+:\s\".*\"+: \""$(echo "$1" | sed 's:/:\\\\\\/:g')"\"+" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s+:\s\".*\"+: \""$(echo "$1" | sed 's:/:\\\\\\/:g')"\"+" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-keyfile)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" path
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" pem
|
||||||
|
sed -i "$counter s+:\s\".*\"+: \""$(echo "$1" | sed 's:/:\\\\\\/:g')"\"+" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s+:\s\".*\"+: \""$(echo "$1" | sed 's:/:\\\\\\/:g')"\"+" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-proxytype)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-httpproxyhost)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-httpproxyport)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" port
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-httpproxyuser)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-httpproxypassword)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-lastwillenabled)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-lastwilltopic)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-lastwillpayload)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-lastwillqos)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-lastwillretain)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-messagingprotocol)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-messageproperty)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-compression)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-standardcommandsenabled)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-senddeviceinfo)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-senddevicestatus)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-telemetrystopped)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}" bool
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-cachemode)
|
||||||
|
shift
|
||||||
|
eingabecheck "$1" "${flagarray[i]}"
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \""$1"\"/" /etc/dataagent/dataagent.config
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ $i == $length-1 ]] && [[ "$checkflagarray" = "$checkflagoption" ]];
|
||||||
|
then
|
||||||
|
echo ERROR : FLAG: "$1" NOT FOUND
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $erase = 1 ]];
|
||||||
|
then
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \"\"/" /etc/dataagent/dataagent.config
|
||||||
|
sed -i "$counter s/:\s\".*\"/: \"\"/" /etc/dataagent/dataagent.config
|
||||||
|
fi
|
||||||
|
unset flagarray[i]
|
||||||
|
done
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## path: /home/script/auto_read.sh
|
||||||
|
|
||||||
|
## configures tty and listens for bluetooth input to pass it on
|
||||||
|
stty -F /dev/service 19200 parenb -parodd -cstopb cs8
|
||||||
|
cat /dev/service | xargs -n 1 /home/script/auto_cert.sh
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# chkconfig: 2345 92 65
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: initBluetoothListener
|
||||||
|
# Required-Start: $local_fs $all
|
||||||
|
# Required-Stop: $syslog
|
||||||
|
# Default-Start: 2345
|
||||||
|
# Default-Stop:
|
||||||
|
# Short-Description: Start a bluetooth listener
|
||||||
|
# Description: Start a listening section for bluetooth, so incoming commands can behandeled
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
## path symlink: /etc/rc.d/S99_init_bluetooth_listener
|
||||||
|
## path: /etc/init.d/initBluetoothListener
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
start)
|
||||||
|
echo "auto_read.sh wird gestartet"
|
||||||
|
# Starte Programm
|
||||||
|
/home/script/auto_read.sh
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
echo "auto_read.sh wird beendet"
|
||||||
|
# Beende Programm
|
||||||
|
killall auto_read.sh
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue