xref: /netbsd-src/etc/rc.d/gpio (revision 84213c7105cbf0d9881d2995b5f025e657685380)
170d654f7Smbalmer#!/bin/sh
270d654f7Smbalmer#
3*84213c71Sbrad# $NetBSD: gpio,v 1.2 2022/04/30 13:48:09 brad Exp $
470d654f7Smbalmer#
570d654f7Smbalmer
670d654f7Smbalmer# PROVIDE: gpio
770d654f7Smbalmer# BEFORE:  securelevel
870d654f7Smbalmer
970d654f7Smbalmer$_rc_subr_loaded . /etc/rc.subr
1070d654f7Smbalmer
1170d654f7Smbalmername="gpio"
1270d654f7Smbalmerrcvar=$name
1370d654f7Smbalmerstart_cmd="gpio_start"
1470d654f7Smbalmerstop_cmd=":"
1570d654f7Smbalmer
1670d654f7Smbalmergpio_start()
1770d654f7Smbalmer{
1870d654f7Smbalmer	if [ -f /etc/gpio.conf ]; then
1970d654f7Smbalmer		echo "Configuring GPIO."
2070d654f7Smbalmer		cat /etc/gpio.conf |
21*84213c71Sbrad		collapse_backslash_newline |
2270d654f7Smbalmer		while read -r args; do
23*84213c71Sbrad			case "$args" in
24*84213c71Sbrad			"!"*)
25*84213c71Sbrad				# Run arbitrary command in a subshell.
26*84213c71Sbrad				( eval "${args#*!}" )
27*84213c71Sbrad				;;
28*84213c71Sbrad			*)
29*84213c71Sbrad			        (
3070d654f7Smbalmer				    args=${args%%#*}		# strip comments
3170d654f7Smbalmer				    test -z "$args" && continue
3270d654f7Smbalmer				    /usr/sbin/gpioctl -q $args
33*84213c71Sbrad				)
34*84213c71Sbrad				;;
35*84213c71Sbrad			esac
3670d654f7Smbalmer		done
3770d654f7Smbalmer	fi
3870d654f7Smbalmer}
3970d654f7Smbalmer
4070d654f7Smbalmerload_rc_config $name
4170d654f7Smbalmerrun_rc_command "$1"
42