~jon-raiford/mythbuntu/lirc

« back to all changes in this revision

Viewing changes to debian/lirc.postinst

  • Committer: Mario Limonciello
  • Date: 2008-11-09 03:32:46 UTC
  • Revision ID: superm1@ubuntu.com-20081109033246-1m3bkzb3ycae92qa
update 02_Makefile.in for lirc 0.8.4a

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
 
1
#!/bin/sh 
2
2
set -e
3
3
 
4
4
DebconfLoad ()
58
58
        #Make sure that all variables are there, and also create the file if
59
59
        #it is not there
60
60
        #local VAR
61
 
        for VAR in REMOTE REMOTE_MODULES REMOTE_DRIVER REMOTE_DEVICE REMOTE_SOCKET REMOTE_LIRCD_CONF REMOTE_LIRCD_ARGS TRANSMITTER TRANSMITTER_MODULES TRANSMITTER_DRIVER TRANSMITTER_DEVICE TRANSMITTER_SOCKET TRANSMITTER_LIRCD_CONF TRANSMITTER_LIRCD_ARGS START_LIRCD START_LIRCMD LOAD_MODULES LIRCMD_CONF FORCE_NONINTERACTIVE_RECONFIGURATION
 
61
        for VAR in REMOTE REMOTE_MODULES REMOTE_DRIVER REMOTE_DEVICE REMOTE_LIRCD_CONF REMOTE_LIRCD_ARGS TRANSMITTER TRANSMITTER_MODULES TRANSMITTER_DRIVER TRANSMITTER_DEVICE TRANSMITTER_LIRCD_CONF TRANSMITTER_LIRCD_ARGS START_LIRCD START_LIRCMD LOAD_MODULES LIRCMD_CONF FORCE_NONINTERACTIVE_RECONFIGURATION
62
62
        do
63
63
                # Patch provided by Robert Bihlmeyer <robbe@orcus.priv.at>
64
64
                # See http://bugs.debian.org/303078
127
127
        #Present the user with some choices
128
128
                #To later explain what this is actually doing without man pages:
129
129
                #First, only grab lines with a ;
 
130
                #Next, sort the list
130
131
                #Now, remove all commas from streams
131
132
                #Now, Remove all remaining comments or ['s
132
133
                #Now, Print the remote name
133
 
                #Next, sort the list and remove duplicates
134
134
                #Now, Affix a comma and space to all starts of lines
135
135
                #Lastly, change the newline to a null character
136
 
        REMOTES=`cat /usr/share/lirc/lirc.hwdb /usr/share/lirc/extras/more_remotes.hwdb 2>/dev/null | grep ";" | sed 's/,//g' | awk -F ";" '$0!~/^#|^\[/{print $1}' | sort -u | sed 's/^/,\ /' | tr '\n' '\0'`
 
136
        REMOTES=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' | awk -F ";" '$0!~/^#|^\[/{print $1}' | sed 's/^/,\ /' | tr '\n' '\0'`
 
137
        TRANSMITTERS=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' | awk -F ";" '$0!~/^#|^\[/{print $1}' | sed 's/^/,\ /' | tr '\n' '\0'`
137
138
        db_subst lirc/remote REMOTES $REMOTES
138
 
 
139
 
        if [ -f /usr/share/lirc/extras/transmitter.hwdb ]; then
140
 
                TRANSMITTERS=`grep ";" /usr/share/lirc/extras/transmitter.hwdb | sort | sed 's/,//g' | awk -F ";" '$0!~/^#|^\[/{print $1}' | sed 's/^/,\ /' | tr '\n' '\0'`
141
 
                db_subst lirc/transmitter TRANSMITTERS $TRANSMITTERS
142
 
        fi
 
139
        db_subst lirc/transmitter TRANSMITTERS $TRANSMITTERS
143
140
 
144
141
        #If we are forcing a reconfigure, then our old remote and new ones are the same
145
142
        if [ "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then
146
143
                CHOSEN_REMOTE="${OLDREMOTE}"
147
 
                OLDREMOTE=""
148
144
                db_set lirc/remote $CHOSEN_REMOTE
149
145
        else
150
146
                db_input high lirc/remote || true
151
 
                if [ -f /usr/share/lirc/extras/transmitter.hwdb ]; then
152
 
                        db_input high lirc/transmitter || true
153
 
                fi
 
147
                db_input high lirc/transmitter || true
154
148
                db_go
155
149
 
156
150
                #Populate remote information (remote is our primary device at all times)
159
153
        fi
160
154
 
161
155
        if [ "$CHOSEN_REMOTE" != "None" -a "$CHOSEN_REMOTE" != "Custom" ] && [ "$OLDREMOTE" != "$CHOSEN_REMOTE" -o "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then
162
 
                #To later explain what this is actually doing without man pages:
163
 
                #First, only grab lines with a ;
164
 
                #Now, remove all commas from streams
165
 
                #Lastly, take the last matching entry found (so remotes.hwdb overrides lirc.hwdb)
166
 
                REMOTE_LINE=`cat /usr/share/lirc/lirc.hwdb /usr/share/lirc/extras/more_remotes.hwdb 2>/dev/null | grep ";" | sed 's/,//g' | grep "${CHOSEN_REMOTE}" | tail -1`
167
 
                #Remove all remaining comments or ['s
168
 
                #then print the remote name
169
 
                REMOTE_MODULES=`echo $REMOTE_LINE | awk -F ";" '$0!~/^#|^\[/{print $3}'`
170
 
                REMOTE_DRIVER=`echo $REMOTE_LINE | awk -F ";" '$0!~/^#|^\[/{print $2}'`
171
 
                REMOTE_LIRCD_CONF=`echo $REMOTE_LINE | awk -F ";" '$0!~/^#|^\[/{print $5}'`
 
156
                REMOTE_MODULES=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' |  grep "${CHOSEN_REMOTE}" | awk -F ";" '$0!~/^#|^\[/{print $3}'`
 
157
                REMOTE_DRIVER=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' |  grep "${CHOSEN_REMOTE}" | awk -F ";" '$0!~/^#|^\[/{print $2}'`
 
158
                REMOTE_LIRCD_CONF=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' |  grep "${CHOSEN_REMOTE}" | awk -F ";" '$0!~/^#|^\[/{print $5}'`
172
159
                SUPPORTED_DRIVERS=`lircd -H help 2>&1 | awk '$0!~/^S|^D/{print $1}' | tr '\n' '\ '`
173
160
 
174
161
                #/dev/input/eventX is a weird case: filter it
258
245
        #If we are forcing a reconfigure, then our old remote and new ones are the same
259
246
        if [ "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then
260
247
                CHOSEN_TRANSMITTER="${OLDTRANSMITTER}"
261
 
                OLDTRANSMITTER=""
262
248
                db_set lirc/transmitter $CHOSEN_TRANSMITTER
263
249
        else
264
250
        #populate transmitter information (transmitter is secondary device)
266
252
                CHOSEN_TRANSMITTER="${RET}"
267
253
        fi
268
254
 
269
 
        if [ -f /usr/share/lirc/extras/transmitter.hwdb ] && [ "$CHOSEN_TRANSMITTER" != "None" -a "$CHOSEN_TRANSMITTER" != "Custom" ] && [ "$OLDTRANSMITTER" != "$CHOSEN_TRANSMITTER" -o "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then
270
 
                TRANSMITTER_LINE=`grep ";" /usr/share/lirc/extras/transmitter.hwdb | sed 's/,//g' |  grep "${CHOSEN_TRANSMITTER}" | tail -1`
271
 
                TRANSMITTER_MODULES=`echo $TRANSMITTER_LINE | awk -F ";" '$0!~/^#|^\[/{print $3}'`
272
 
                TRANSMITTER_DRIVER=`echo $TRANSMITTER_LINE | awk -F ";" '$0!~/^#|^\[/{print $2}'`
273
 
                TRANSMITTER_LIRCD_CONF=`echo $TRANSMITTER_LINE | awk -F ";" '$0!~/^#|^\[/{print $5}'`
 
255
        if [ "$CHOSEN_TRANSMITTER" != "None" -a "$CHOSEN_TRANSMITTER" != "Custom" ] && [ "$OLDTRANSMITTER" != "$CHOSEN_TRANSMITTER" -o "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then
 
256
                TRANSMITTER_MODULES=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' |  grep "${CHOSEN_TRANSMITTER}" | awk -F ";" '$0!~/^#|^\[/{print $3}'`
 
257
                TRANSMITTER_DRIVER=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' |  grep "${CHOSEN_TRANSMITTER}" | awk -F ";" '$0!~/^#|^\[/{print $2}'`
 
258
                TRANSMITTER_LIRCD_CONF=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' |  grep "${CHOSEN_TRANSMITTER}" | awk -F ";" '$0!~/^#|^\[/{print $5}'`
274
259
                #transmitter.hwdb puts none rather than ;;
275
260
                if [ "$TRANSMITTER_MODULES" != "none" ]; then
276
261
                        #if we have a module in use, don't use a driver too
300
285
        fi
301
286
 
302
287
        #Choose a serial port if we are using serial
303
 
        if [ "$REMOTE_MODULES" = "lirc_dev lirc_serial" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial" ]; then
 
288
        if [ "$REMOTE_MODULES" = "lirc_dev lirc_serial" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial" ] || \
 
289
           [ "$REMOTE_MODULES" = "lirc_dev lirc_serial_igor" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial_igor" ]; then
304
290
                db_input high lirc/serialport || true
305
291
                db_go
306
292
        #if we aren't using serial, then go back to default
327
313
                        if [ ! -z "TRANSMITTER_MODULES" -a "$TRANSMITTER_MODULES" = "$REMOTE_MODULES" ] || [ ! -z "$TRANSMITTER_DRIVER" -a "$TRANSMITTER_DRIVER" = "$REMOTE_DRIVER" ]; then
328
314
                                TRANSMITTER_DEVICE=""
329
315
                                TRANSMITTER_DRIVER=""
 
316
                        #corner case for pvr-150's transmitter
 
317
                        elif [ "$REMOTE_MODULES" = "lirc_dev lirc_i2c" ] && [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_pvr150" ]; then
 
318
                                REMOTE_MODULES="$TRANSMITTER_MODULES"
 
319
                                TRANSMITTER_DEVICE=""
 
320
                                TRANSMITTER_DRIVER=""
 
321
                                TRANSMITTER_MODULES=""
330
322
                        #if they aren't the same driver/device, we needed a remote module and we need a transmitter kernel module
331
323
                        elif [ "$REMOTE_DEVICE" = "/dev/lirc0" ] && [ ! -z "$TRANSMITTER_MODULES" ]; then
332
324
                                TRANSMITTER_DEVICE="/dev/lirc1"
407
399
        REMOTE_MODULES=$RET
408
400
        db_get lirc/transmitter_modules
409
401
        TRANSMITTER_MODULES=$RET
410
 
        if [ "$REMOTE_MODULES" = "lirc_dev lirc_serial" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial" ]; then
 
402
        if [ "$REMOTE_MODULES" = "lirc_dev lirc_serial" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial" ] || \
 
403
           [ "$REMOTE_MODULES" = "lirc_dev lirc_serial_igor" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial_igor" ]; then
411
404
 
412
405
                #if we chose ttyS0 or ttyS1, add it to modprobe.d
413
406
                db_get lirc/serialport
414
407
                SERIAL=$RET
415
408
                if [ "$SERIAL" = "/dev/ttyS0" ]; then
416
 
                        cat > /etc/modprobe.d/lirc-serial.conf <<EOF
 
409
                        cat > /etc/modprobe.d/lirc-serial <<EOF
417
410
#COM1 equivalent, /dev/ttyS0
418
411
options lirc_serial irq=4 io=0x3f8
419
412
#COM2 equivalent, /dev/ttyS1
421
414
EOF
422
415
 
423
416
                elif [ "$SERIAL" = "/dev/ttyS1" ]; then
424
 
                        cat > /etc/modprobe.d/lirc-serial.conf <<EOF
 
417
                        cat > /etc/modprobe.d/lirc-serial <<EOF
425
418
#COM1 equivalent, /dev/ttyS0
426
419
#options lirc_serial irq=4 io=0x3f8
427
420
#COM2 equivalent, /dev/ttyS1
460
453
 
461
454
EOF
462
455
        #if we have a remote, include it's config
463
 
        if [ -f "/usr/share/lirc/extras/more_remotes/$REMOTE_LIRCD_CONF" ];then
464
 
                cat >> /etc/lirc/lircd.conf <<EOF
465
 
#Configuration for the $REMOTE remote:
466
 
include "/usr/share/lirc/extras/more_remotes/$REMOTE_LIRCD_CONF"
467
 
 
468
 
EOF
469
 
        elif [ -f "/usr/share/lirc/remotes/$REMOTE_LIRCD_CONF" ];then
470
 
                cat >> /etc/lirc/lircd.conf <<EOF
471
 
#Configuration for the $REMOTE remote:
472
 
include "/usr/share/lirc/remotes/$REMOTE_LIRCD_CONF"
 
456
        if [ -f "/usr/share/lirc/remotes/$REMOTE_LIRCD_CONF" ];then
 
457
                cat >> /etc/lirc/lircd.conf <<EOF
 
458
#Configuration for the $REMOTE remote:
 
459
include /usr/share/lirc/remotes/$REMOTE_LIRCD_CONF
473
460
 
474
461
EOF
475
462
        elif [ -f "$REMOTE_LIRCD_CONF" ]; then
476
463
cat >> /etc/lirc/lircd.conf <<EOF
477
464
#Configuration for the $REMOTE remote:
478
 
include "$REMOTE_LIRCD_CONF"
 
465
include $REMOTE_LIRCD_CONF
479
466
 
480
467
EOF
481
468
        elif [ "$REMOTE" != "None" ]; then
488
475
        fi
489
476
 
490
477
        #if we have a transmitter, include it's config
491
 
        if [ -f "/usr/share/lirc/extras/transmitters/$TRANSMITTER_LIRCD_CONF" ];then
 
478
        if [ -f "/usr/share/lirc/transmitters/$TRANSMITTER_LIRCD_CONF" ];then
492
479
                cat >> /etc/lirc/lircd.conf <<EOF
493
480
#Configuration for the $TRANSMITTER transmitter:
494
 
include "/usr/share/lirc/extras/transmitters/$TRANSMITTER_LIRCD_CONF"
 
481
include /usr/share/lirc/transmitters/$TRANSMITTER_LIRCD_CONF
495
482
EOF
496
483
        elif [ -f "$TRANSMITTER_LIRCD_CONF" ]; then
497
484
cat >> /etc/lirc/lircd.conf <<EOF
498
485
#Configuration for the $TRANSMITTER transmitter:
499
 
include "$TRANSMITTER_LIRCD_CONF"
 
486
include $TRANSMITTER_LIRCD_CONF
500
487
 
501
488
EOF
502
489
        elif [ "$TRANSMITTER" != "None" ]; then
521
508
    done
522
509
}
523
510
 
524
 
migrate_include()
525
 
{
526
 
        if [ -f $1 ]; then
527
 
                sed -i 's/\(^include\ \/.*$\)/\1\"/; s/^include\ \//include\ \"\//' $1
528
 
        fi
529
 
}
530
 
 
531
511
. /usr/share/debconf/confmodule
532
512
 
533
513
if [ "$1" = "configure" ]; then
534
514
 
535
 
        #0.8.6 got rid of mceusb2 so users need to repick remotes
536
 
        if dpkg --compare-versions "$2" le-nl "0.8.6-0ubuntu1"; then
537
 
                db_fset lirc/remote seen false
538
 
                db_fset lirc/transmitter seen false
539
 
        fi
540
 
 
541
 
        if [ -e "/etc/modprobe.d/lirc-serial" ]; then
542
 
                        echo "Preserving user changes to /etc/modprobe.d/lirc-serial.conf ..."
543
 
                        if [ -e "/etc/modprobe.d/lirc-serial.conf" ]; then
544
 
                                        mv -f "/etc/modprobe.d/lirc-serial.conf" "/etc/modprobe.d/lirc-serial.conf.dpkg-new"
545
 
                        fi
546
 
                        mv -f "/etc/modprobe.d/lirc-serial" "/etc/modprobe.d/lirc-serial.conf"
547
 
        fi
548
 
 
549
 
 
550
 
        #migrate syntax from older lirc version that might have included
551
 
        #an older variant of the include patch in intrepid and earlier
552
 
        if [ -n "$2" ] && dpkg --compare-versions "$2" lt "0.8.4a-0ubuntu2"; then
553
 
                migrate_include /etc/lirc/lircd.conf
554
 
        fi
555
 
 
556
 
 
557
515
        [ -x /sbin/udevd ] && invoke-rc.d udev reload >&2
558
516
 
559
517
        #unload any old modules before starting
597
555
 
598
556
                # if there is a misplaced config file it is ok to move it to
599
557
                # the right place
600
 
                if [ -f /etc/lircmd.conf ];then
 
558
                if [ -f /etc/lircmd.conf ];then 
601
559
                        echo moving /etc/lircmd.conf to /etc/lirc/
602
560
                        mv /etc/lircmd.conf /etc/lirc/
603
561
 
604
562
                # we don't restore the file unless the user is (re)configuring
605
563
                elif $CONFIG_CHANGED \
606
 
                        && [ -f "/usr/share/lirc/extras/more_remotes/$RET" ];then
607
 
                        echo trying default lircmd.conf
608
 
                        cp /usr/share/lirc/extras/more_remotes/$RET \
609
 
                                /etc/lirc/lircmd.conf
610
 
                elif $CONFIG_CHANGED \
611
564
                        && [ -f "/usr/share/lirc/remotes/$RET" ];then
612
565
                        echo trying default lircmd.conf
613
566
                        cp /usr/share/lirc/remotes/$RET \
617
570
        if [ -f /var/log/lircd ]
618
571
        then
619
572
                db_get lirc/remove_var-log-lircd
620
 
                if $RET
621
 
                then
 
573
                if $RET 
 
574
                then 
622
575
                        rm /var/log/lircd
623
576
                fi
624
577
        fi