From f3176367f15806ab69528420fc6e59d20ea81365 Mon Sep 17 00:00:00 2001 From: David Thurstenson Date: Wed, 11 Dec 2019 11:46:30 -0600 Subject: [PATCH] Added Crestron helper functions --- .bashrc.d/cn-fwupd.sh | 20 ++++++++++++++++++++ .bashrc.d/cn-progload.sh | 34 ++++++++++++++++++++++++++++++++++ .bashrc.d/cnsftp.sh | 13 +++++++++++++ .bashrc.d/cnssh.sh | 15 +++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 .bashrc.d/cn-fwupd.sh create mode 100644 .bashrc.d/cn-progload.sh create mode 100644 .bashrc.d/cnsftp.sh create mode 100644 .bashrc.d/cnssh.sh diff --git a/.bashrc.d/cn-fwupd.sh b/.bashrc.d/cn-fwupd.sh new file mode 100644 index 0000000..ca7ed3b --- /dev/null +++ b/.bashrc.d/cn-fwupd.sh @@ -0,0 +1,20 @@ +cn-fwupd() { + local addr="$1" + local puf="$2" + local ext="${puf##*.}" + + case $ext in + + zip) + printf 'put %q firmware/update.zip' "$puf" | cnsftp $addr + cnssh $addr pushupdate FULL + ;; + puf) + printf 'put %q firmware/update.puf' "$puf" | cnsftp $addr + cnssh $addr puf + ;; + *) + echo "Error: Bad file type. Currently, only'.zip' and '.puf' file types are supported." + ;; + esac +} diff --git a/.bashrc.d/cn-progload.sh b/.bashrc.d/cn-progload.sh new file mode 100644 index 0000000..53d9899 --- /dev/null +++ b/.bashrc.d/cn-progload.sh @@ -0,0 +1,34 @@ +cn-progload() { + local addr="$1" + local project="$2" + local ext="${project##*.}" + # Add a zero in front of the 3rd arg + local slot="0${3}" + # expand only to the last 2 digits of $slot + slot="${slot: -2}" + + + case $ext in + + vtz) + if [[ ! -z $slot ]]; then + echo "==NOTICE== Ignoring slot number for touchpanel project..." + fi + printf 'put %q' "$project" | cnsftp $addr:display + cnssh $addr projectload + ;; + + lpz) + if [[ -z $slot ]]; then + echo "==NOTICE== No target program slot defined. Assuming Slot 01..." + slot=01 + fi + printf 'put %q' "$project" | cnsftp $addr:Program$slot + cnssh $addr progload -p:$slot + ;; + + *) + echo "Error: Bad file type. Currently only supports vtz and lpz projects." + ;; + esac +} diff --git a/.bashrc.d/cnsftp.sh b/.bashrc.d/cnsftp.sh new file mode 100644 index 0000000..695db5e --- /dev/null +++ b/.bashrc.d/cnsftp.sh @@ -0,0 +1,13 @@ +cnsftp() { + # sshpass -p "" ssh Crestron@192.168.0.51 + local uname="Crestron" + local pass="" + local cmd="$@" + + sshpass -p "$pass" sftp \ + -o StrictHostKeyChecking=no\ + -o GlobalKnownHostsFile=/dev/null\ + -o UserKnownHostsFile=/dev/null\ + -o User="$uname" \ + "$cmd" +} diff --git a/.bashrc.d/cnssh.sh b/.bashrc.d/cnssh.sh new file mode 100644 index 0000000..c64f75d --- /dev/null +++ b/.bashrc.d/cnssh.sh @@ -0,0 +1,15 @@ +cnssh() { + # Usage: cnssh [command] + # sshpass -p "" ssh Crestron@192.168.0.51 + local uname="Crestron" + local pass="" + local addr="$1" + shift + local cmd="$@" + + sshpass -p "$pass" ssh \ + -o StrictHostKeyChecking=no\ + -o GlobalKnownHostsFile=/dev/null\ + -o UserKnownHostsFile=/dev/null\ + "$uname"@"$addr" "$cmd" +}