Skip to content

Instantly share code, notes, and snippets.

@jeremy-brenner
Last active November 20, 2015 00:38
Show Gist options
  • Save jeremy-brenner/b9dc692ea3a283e92958 to your computer and use it in GitHub Desktop.
Save jeremy-brenner/b9dc692ea3a283e92958 to your computer and use it in GitHub Desktop.
Printer power shell script
#!/bin/bash
pins=(13 19 20 21)
default_power_state=1
usb_hub=0
usb_port=2
init () {
for pin in ${pins[@]}; do
echo ${pin} > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio${pin}/direction
done
}
power () {
relay_power
usb_power
}
relay_power () {
for pin in ${pins[@]}; do
echo ${power_state} > /sys/class/gpio/gpio${pin}/value
done
}
usb_power () {
hub-ctrl -h ${usb_hub} -P ${usb_port} -p ${power_state}
}
usage () {
echo "usage: power_relay action"
echo " actions:"
echo " init: initializes gpio and set to default power state (currently ${default_power_state})"
echo " on: turns power on"
echo " off: turns power off"
}
if [ -z $1 ] ; then
usage
exit
fi
if [ $1 != 'init' -a $1 != 'on' -a $1 != 'off' ]; then
usage
exit
fi
if [ $1 == 'init' ]; then
init
power_state=${default_power_state}
power
exit
fi
if [ $1 == 'on' ]; then
power_state=1
power
exit
fi
if [ $1 == 'off' ]; then
power_state=0
power
exit
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment