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