1#!/bin/sh
2#
3# OWFS setup routines for SUSE systems
4# Written by Paul Alfille and others.
5# udev routines by Peter Kropf
6# GPL v2 license (like all of OWFS)
7# copyrite 12/2006 Paul H Alfille
8#
9### ------------------
10### -- Constants -----
11### ------------------
12OWFS_GROUP=ow
13#
14#
15###  -----------------
16###  -- Group --------
17###  -----------------
18groupadd $OWFS_GROUP
19#
20###  -----------------
21###  -- Links --------
22###  -----------------
23# Put all the ninaries in /usr/bin
24#  make them part of the "ow" group
25#  and let only their owner and group read or execute them
26OWFS_bin="owfs owhttpd owftpd owserver owread owwrite owpresent owdir"
27for x in $OWFS_bin
28  do
29  ln -sfv /opt/owfs/bin/$x /usr/bin/$x
30done
31#
32###  -----------------
33###  -- Rules --------
34###  -----------------
35cat >/etc/udev/rules.d/46_ds2490.rules << RULES
36BUS=="usb", ACTION=="add", SYSFS{idVendor}=="04fa", SYSFS{idProduct}=="2490", \
37        PROGRAM="/bin/sh -c 'K=%k; K=\$\${K#usbdev}; printf bus/usb/%%03i/%%03i \$\${K%%%%.*} \$\${K#*.}'", \
38        NAME="%c", MODE="0664", RUN+="/etc/udev/ds2490 '%c'"
39RULES
40#
41###  -----------------
42###  -- Shell --------
43###  -----------------
44cat >/etc/udev/ds2490 << SHELL
45#! /bin/sh -x
46    /sbin/rmmod ds9490r
47    MATCH="no"
48    if [ "\$1" != "" ]; then
49        if [ -f /proc/\$1 ]; then
50            chgrp $OWFS_GROUP /proc/\$1 && \
51            chmod g+rw /proc/\$1 && \
52            logger ow udev: group set to $OWFS_GROUP and permission g+rw on /proc/\$1
53            MATCH="yes"
54        fi
55
56        if [ -e /dev/\$1 ]; then
57            chgrp $OWFS_GROUP /dev/\$1 && \
58            chmod g+rw /dev/\$1 && \
59            logger ow udev: group set to $OWFS_GROUP and permission g+rw on /dev/\$1
60            MATCH="yes"
61        fi
62    fi
63
64    if [ "\$MATCH" = "no" ]; then
65        echo ow udev: no device file found for "\$1"
66        logger ow udev: no device file found for "\$1"
67    fi
68SHELL
69chmod 755 /etc/udev/ds2490
70