~ubuntu-branches/ubuntu/warty/fluxbox/warty

« back to all changes in this revision

Viewing changes to util/bsetbg

  • Committer: Bazaar Package Importer
  • Author(s): Matt Hope
  • Date: 2002-04-12 22:08:52 UTC
  • Revision ID: james.westby@ubuntu.com-20020412220852-0gbqxr57mgu63qdh
Tags: upstream-0.1.7
ImportĀ upstreamĀ versionĀ 0.1.7

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
 
3
# Copyright (c) 2000 LordZork Industries (lordzork@lordzork.com)
 
4
#
 
5
# Permission is hereby granted, free of charge, to any person obtaining a
 
6
# copy of this software and associated documentation files (the "Software"),
 
7
# to deal in the Software without restriction, including without limitation
 
8
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 
9
# and/or sell copies of the Software, and to permit persons to whom the 
 
10
# Software is furnished to do so, subject to the following conditions:
 
11
 
12
# The above copyright notice and this permission notice shall be included in 
 
13
# all copies or substantial portions of the Software. 
 
14
 
15
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
 
16
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
 
17
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
 
18
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
 
19
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
 
20
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 
21
# DEALINGS IN THE SOFTWARE.
 
22
 
 
23
 
 
24
error_msg()
 
25
{
 
26
 case $INFO in yes|y|1) info_msg; esac
 
27
 
 
28
 case $1 in
 
29
   1)
 
30
     echo; echo "$NAME: configuration error: $OPTION=\"$VALUE\"" 
 
31
     echo "$NAME: please edit $CONFIG and provide the correct variable."
 
32
     ;;
 
33
   2)
 
34
     echo; echo "$NAME: error: couldn't execute '$APP'! tried to run fallback option $ARGUMENT"
 
35
     echo "$NAME: but quit because of the following error in $CONFIG:"
 
36
     echo "$NAME: $OPTION= $VALUE"
 
37
     echo "$NAME: please edit $CONFIG and provide the correct variable!"
 
38
     ;;
 
39
   3)
 
40
     echo; echo "$NAME: error: couldn't find any suitable image applications in the system path!"
 
41
     echo
 
42
     error_msg url
 
43
     ;;
 
44
   4)
 
45
     echo; echo "$NAME: error: invalid option, or non-existent image ($ARGUMENT)."
 
46
     ;;
 
47
   5)
 
48
     echo; echo "$NAME: error: the image you specified ($IMAGE) could not be found."
 
49
     ;;
 
50
   6)
 
51
     echo; echo "$NAME: error: please specify a valid image."
 
52
     ;;
 
53
   7)
 
54
     echo; echo "$NAME: error: bsetroot couldn't be found! check your blackbox installation."
 
55
     ;;
 
56
   8)
 
57
     echo; echo "$NAME: error: wrong number of arguments!"
 
58
     echo "$NAME: make sure you enclosed the options for '$APP' in double quotes."
 
59
     ;;
 
60
   nobgapp)
 
61
     echo; echo "$NAME: error: tried to run '$VALUE' for $ARGUMENT argument,"
 
62
     echo "$NAME: but couldnt find '$APP' in the path! please fix the following"
 
63
     echo "$NAME: line in $CONFIG to point to an existing application:"
 
64
     echo "$NAME: $OPTION=\"$VALUE\""
 
65
     ;;
 
66
   nogrep)
 
67
     echo "$NAME: error: couldn't find grep!"
 
68
     echo "this script needs grep to be in your path in order to function." 
 
69
     echo "you can get GNU grep from ftp://ftp.gnu.org/bin/gnu/grep/" && exit 1
 
70
     ;;
 
71
   url)
 
72
     echo "it is suggested that you use qiv, xli (xsetbg), or xv."
 
73
     echo "you can obtain them at the following locations:"
 
74
     echo
 
75
     echo "   qiv: http://www.klografx.de/software/qiv.shtml"
 
76
     echo "   xli: http://pantransit.reptiles.org/prog/#xli"
 
77
     echo "   xv: http://www.trilon.com/xv/downloads.html"
 
78
     echo
 
79
     echo "the above URLs are current as of 05/23/2000."
 
80
 esac
 
81
 exit 1     
 
82
}
 
83
 
 
84
 
 
85
help_msg()
 
86
{
 
87
    echo "$NAME $VERSION: $MORE"
 
88
    echo "options:"
 
89
    echo
 
90
    echo "  (none)                             image is set using default values"
 
91
    echo
 
92
    echo "  -full, -f                          image is set fullscreen"
 
93
    echo "  -tile, -t                          image is set tiled"
 
94
    echo "  -center, -c                        image is set centered"
 
95
    echo
 
96
    echo "  -app, -a <application>             image is set using <application> with"
 
97
    echo "     <"'"application options"'">            quote-enclosed \"options\" and" 
 
98
    echo "     -center, -c|-tile, -t|-full, -f    default fallback option"
 
99
    echo
 
100
    echo "  -display <string>                  display to connect to (bsetroot only)"
 
101
    echo "  -mod <x> <y>                       sets bsetroot modula pattern"
 
102
    echo "     -foreground, -fg <color>           modula foreground color"
 
103
    echo "     -background, -bg <color>           modula background color"
 
104
    echo
 
105
    echo "  -gradient <texture>                sets bsetroot gradient texture"
 
106
    echo "     -from <color>                      gradient start color"
 
107
    echo "     -to <color>                        gradient end color"
 
108
    echo
 
109
    echo "  -solid <color>                     sets bsetroot solid color"
 
110
    echo
 
111
    echo "  -version, -v                       outputs $NAME's version number"
 
112
    echo "  -info, -i                          outputs configuration info"
 
113
    echo "  -help, -h                          this message"
 
114
    echo
 
115
    echo "usage: <options...> <image>"
 
116
    exit 0 
 
117
}
 
118
 
 
119
 
 
120
info_msg()
 
121
{
 
122
    case $ERROR in
 
123
        [1-3])
 
124
            SUMMARY="error: some variables are blank"
 
125
            ;;
 
126
        4)
 
127
            SUMMARY="no values have been specified"
 
128
            ;;
 
129
        0)
 
130
            SUMMARY="looks good"
 
131
    esac
 
132
 
 
133
    case $APP_ERROR in [1-4])
 
134
        SUMMARY="error: some applications couldn't be found!"
 
135
    esac
 
136
 
 
137
    case `which bsetroot 2>&1` in
 
138
        */*bsetroot)
 
139
            BSETROOT=`which bsetroot`
 
140
            ;;
 
141
        *)
 
142
            BSETROOT="(error: not found)"
 
143
            case $ERROR in
 
144
                1-4)
 
145
                    SUMMARY="$SUMMARY, and bsetroot does not seem to be present."
 
146
                    ;;
 
147
                *)
 
148
                    SUMMARY="$SUMMARY, but bsetroot does not seem to be present."
 
149
            esac
 
150
    esac
 
151
 
 
152
    echo "$NAME $VERSION configuration:"
 
153
    echo
 
154
    echo "  bsetroot:                          $BSETROOT"
 
155
    echo
 
156
    echo "  reading configuration from:        $CONFIG"
 
157
    echo
 
158
    echo "  configuration values:"
 
159
    echo
 
160
    case $FULL_BGAPP_MSG in 
 
161
        *"not found")
 
162
            echo "      fullscreen (ERROR):            $FULL_BGAPP_MSG"
 
163
            ;;
 
164
        *)
 
165
            echo "      fullscreen (FULL):             $FULL_MSG"
 
166
    esac
 
167
 
 
168
    echo
 
169
 
 
170
    case $TILE_BGAPP_MSG in 
 
171
        *"not found")
 
172
            echo "      tiled (ERROR):                 $TILE_BGAPP_MSG"
 
173
            ;;
 
174
        *)
 
175
            echo "      tiled (TILE):                  $TILE_MSG"
 
176
    esac
 
177
 
 
178
    echo
 
179
 
 
180
    case $CENTER_BGAPP_MSG in 
 
181
        *"not found")
 
182
            echo "      centered (ERROR):              $CENTER_BGAPP_MSG"
 
183
            ;;
 
184
        *)
 
185
            echo "      centered (CENTER):             $CENTER_MSG"
 
186
    esac
 
187
 
 
188
    echo
 
189
 
 
190
    case $DEFAULT_BGAPP_MSG in 
 
191
        *"not found")
 
192
            echo "      default (ERROR):               $DEFAULT_BGAPP_MSG"
 
193
            ;;
 
194
        *)
 
195
            echo "      default (DEFAULT):             $DEFAULT_MSG"
 
196
    esac
 
197
    echo
 
198
    echo "  summary: $SUMMARY"
 
199
    exit 0
 
200
}
 
201
 
 
202
 
 
203
find_app()
 
204
{
 
205
    case `which $1 2>&1` in 
 
206
        */*$1)
 
207
            echo "$NAME: checking for $1... `which $1`"
 
208
            echo "### $app" >> $TMPFILE
 
209
            echo "# FULL=\"$full\"" >> $TMPFILE
 
210
            echo "# TILE=\"$tile\"" >> $TMPFILE
 
211
            echo "# CENTER=\"$center\"" >> $TMPFILE
 
212
            echo "# DEFAULT=\"$default\"" >> $TMPFILE
 
213
            echo >> $TMPFILE
 
214
 
 
215
            FULL=$full
 
216
            TILE=$tile
 
217
            CENTER=$center
 
218
            DEFAULT=$default
 
219
            APP=$app
 
220
            ;;
 
221
        *)
 
222
        echo "$NAME: checking for $1... not found."
 
223
    esac
 
224
}
 
225
 
 
226
search_display()
 
227
{
 
228
    ### display
 
229
    full="display -geometry 800x600 -window root"
 
230
    tile="display -window root"
 
231
    center="display -backdrop -window root"
 
232
    default=$center
 
233
    find_app display
 
234
}
 
235
 
 
236
search_Esetroot()
 
237
{
 
238
    ### Esetroot
 
239
    full="Esetroot -scale"
 
240
    tile="Esetroot"
 
241
    center="Esetroot -c"
 
242
    default=$center
 
243
    find_app Esetroot
 
244
}
 
245
 
 
246
search_wmsetbg()
 
247
{
 
248
    ### wmsetbg
 
249
    full="wmsetbg -s -S"
 
250
    tile="wmsetbg -t"
 
251
    center="wmsetbg -e"
 
252
    default=$center
 
253
    find_app wmsetbg
 
254
}
 
255
 
 
256
search_xli()
 
257
{
 
258
    ### xli
 
259
    case `which xsetbg 2>&1` in
 
260
        */*xsetbg)
 
261
            full="xsetbg -fillscreen"
 
262
            tile="xsetbg"
 
263
            center="xsetbg -center"
 
264
            default=$center
 
265
            app="xsetbg (xli)"
 
266
            find_app xsetbg
 
267
            ;;
 
268
        *)
 
269
            case `which xli 2>&1` in */*xli)
 
270
                full="xli -fillscreen -onroot -quiet"
 
271
                tile="xli -onroot -quiet"
 
272
                center="xli -center -onroot quiet"
 
273
                default=$center
 
274
                app=xli
 
275
                find_app xli
 
276
            esac
 
277
    esac
 
278
}
 
279
 
 
280
search_qiv()
 
281
{
 
282
    ### qiv
 
283
    full="qiv --root_s"
 
284
    tile="qiv --root_t"
 
285
    center="qiv --root"
 
286
    default=$center
 
287
    find_app qiv
 
288
}
 
289
 
 
290
search_xv()
 
291
{
 
292
    ### xv
 
293
    full="xv -max -smooth -root -quit"
 
294
    tile="xv -root -quit"
 
295
    center="xv -rmode 5 -root -quit"
 
296
    default=$center
 
297
    find_app xv
 
298
}
 
299
 
 
300
 
 
301
rm_tmpfiles()
 
302
{
 
303
    [ -f $TMPFILE ] && rm -f $TMPFILE
 
304
    [ -f $TMPFILE2 ] && rm -f $TMPFILE2
 
305
}
 
306
 
 
307
 
 
308
create_config()
 
309
{
 
310
    trap rm_tmpfiles INT QUIT STOP TERM
 
311
    case $UID in 0)
 
312
        if [ "$ARGUMENT" != "-r" ]; then
 
313
            echo "$NAME: running X as root is a security hazard, and is NOT a good idea!"
 
314
            echo "$NAME: if you insist upon having a ~/.fluxbox/bsetbg for root, run bsetbg with"
 
315
            echo "$NAME: the '-r' flag to force its creation. you have been warned!"
 
316
            exit 1
 
317
        fi
 
318
    esac
 
319
 
 
320
    case $ARGUMENT in
 
321
        -r)
 
322
            echo "$NAME: creating configuration for root (BAD IDEA)..."
 
323
            ;;
 
324
        *)
 
325
            echo "$NAME: $CONFIG not found, creating..."
 
326
    esac
 
327
 
 
328
    rm_tmpfiles
 
329
 
 
330
    for app in $IMAGE_APPS; do
 
331
        search_$app
 
332
    done
 
333
 
 
334
    if [ -z "$FULL" ] || [ -z "TILE" ] || [ -z "$CENTER" ]; then
 
335
        rm -f $TMPFILE
 
336
        INFO= && error_msg 3
 
337
    fi
 
338
 
 
339
    if [ ! -d ~/.fluxbox ]; then
 
340
        mkdir ~/.fluxbox
 
341
    fi
 
342
 
 
343
    echo "# $CONFIG" >> $CONFIG
 
344
    echo "#" >> $CONFIG
 
345
    echo "# automagically generated with loving care by $NAME $VERSION on `date`" >> $CONFIG
 
346
    echo "#" >> $CONFIG
 
347
    echo "# uncomment the set below that corresponds to your favorite root-image" >> $CONFIG
 
348
    echo "# application, or mix and match to suit your pleasure." >> $CONFIG
 
349
    echo "#" >> $CONFIG
 
350
    echo "# xli misbehaves under larger screen resolutions when using the -fillscreen" >> $CONFIG
 
351
    echo "# option. use -fullscreen if your resolution is higher than 1024x768." >> $CONFIG
 
352
    echo "#" >> $CONFIG
 
353
    echo; echo >> $CONFIG
 
354
    echo "### $APP" >> $CONFIG
 
355
    echo "FULL=\"$FULL\"" >> $CONFIG
 
356
    echo "TILE=\"$TILE\"" >> $CONFIG
 
357
    echo "CENTER=\"$CENTER\"" >> $CONFIG
 
358
    echo "DEFAULT=\"$DEFAULT\"" >> $CONFIG
 
359
    echo >> $CONFIG
 
360
 
 
361
    cat $TMPFILE | grep -v $APP > $TMPFILE2
 
362
    cat "$TMPFILE2" >> $CONFIG
 
363
 
 
364
    rm -f $TMPFILE $TMPFILE2
 
365
 
 
366
    if [ -f $CONFIG ]; then
 
367
        echo "$NAME: default configuration was created in $CONFIG."
 
368
    else
 
369
        echo "ERROR: $CONFIG not found!" && exit 1
 
370
    fi
 
371
}
 
372
 
 
373
check_config_apps()
 
374
{
 
375
    BGAPP=$1
 
376
    case `which $1 2>&1` in
 
377
        */*$1)
 
378
            BGAPP_MSG="`which $1`"
 
379
            ;;
 
380
        *)
 
381
            BGAPP_MSG="$BGAPP: not found"
 
382
            APP_ERROR=`expr $APP_ERROR + 1`
 
383
    esac
 
384
}
 
385
 
 
386
 
 
387
check_config_vars()
 
388
{
 
389
    ERROR=0
 
390
    APP_ERROR=0
 
391
 
 
392
    if [ -z "$FULL" ]; then
 
393
        FULL_MSG="(no value)" && ERROR=`expr $ERROR + 1`
 
394
    else
 
395
        check_config_apps $FULL
 
396
        FULL_BGAPP_MSG=$BGAPP_MSG
 
397
        FULL_BGAPP=$BGAPP
 
398
        FULL_MSG="$FULL" 
 
399
    fi
 
400
 
 
401
    if [ -z "$TILE" ]; then
 
402
        TILE_MSG="(no value)" && ERROR=`expr $ERROR + 1`
 
403
    else
 
404
        check_config_apps $TILE
 
405
        TILE_BGAPP_MSG=$BGAPP_MSG
 
406
        TILE_BGAPP=$BGAPP
 
407
        TILE_MSG="$TILE"
 
408
    fi
 
409
 
 
410
    if [ -z "$CENTER" ]; then
 
411
        CENTER_MSG="(no value)" && ERROR=`expr $ERROR + 1`
 
412
    else
 
413
        check_config_apps $CENTER
 
414
        CENTER_BGAPP_MSG=$BGAPP_MSG
 
415
        CENTER_BGAPP=$BGAPP
 
416
        CENTER_MSG="$CENTER"
 
417
    fi
 
418
 
 
419
    if [ -z "$DEFAULT" ]; then
 
420
        DEFAULT_MSG="(no value)" && ERROR=`expr $ERROR + 1`
 
421
    else
 
422
        check_config_apps $DEFAULT
 
423
        DEFAULT_BGAPP_MSG=$BGAPP_MSG
 
424
        DEFAULT_BGAPP=$BGAPP
 
425
        DEFAULT_MSG="$DEFAULT"
 
426
    fi
 
427
}
 
428
 
 
429
 
 
430
final_error_check()
 
431
{
 
432
    case $ARGUMENT in
 
433
        *full|-f|c)
 
434
            OPTION=FULL
 
435
            VALUE=$FULL_MSG
 
436
            FB_ARG=$FULL
 
437
            case $FULL_BGAPP_MSG in *"not found")
 
438
                APP=$FULL_BGAPP
 
439
                error_msg nobgapp
 
440
            esac
 
441
            ;;
 
442
        *tile|-t|t)
 
443
            OPTION=TILE
 
444
            VALUE=$TILE_MSG
 
445
            FB_ARG=$TILE
 
446
            case $TILE_BGAPP_MSG in *"not found")
 
447
                APP=$TILE_BGAPP
 
448
                error_msg nobgapp
 
449
            esac
 
450
            ;;
 
451
        *center|-c|c)
 
452
            OPTION=CENTER
 
453
            VALUE=$CENTER_MSG
 
454
            FB_ARG=$CENTER
 
455
            case $CENTER_BGAPP_MSG in *"not found")
 
456
                APP=$CENTER_BGAPP
 
457
                error_msg nobgapp
 
458
            esac                    
 
459
            ;;
 
460
        *)
 
461
            OPTION=DEFAULT
 
462
            VALUE=$DEFAULT_MSG
 
463
            FB_ARG=$DEFAULT
 
464
            ARGUMENT=default
 
465
            case $DEFAULT_BGAPP_MSG in *"not found")
 
466
                APP=$DEFAULT_BGAPP
 
467
                error_msg nobgapp
 
468
            esac
 
469
 
 
470
            if [ "$IMAGE_EXISTS" != yes ]; then
 
471
            error_msg 4; fi
 
472
    esac
 
473
 
 
474
    case $VALUE in "(no value)")
 
475
        if [ -n "$APP" ]; then
 
476
            error_msg 2
 
477
        else
 
478
            error_msg 1
 
479
        fi
 
480
    esac
 
481
}
 
482
 
 
483
 
 
484
check_config()
 
485
{
 
486
    if [ ! -f $CONFIG ]; then
 
487
        create_config
 
488
    fi
 
489
 
 
490
    check_old_config
 
491
    . $CONFIG
 
492
    check_config_vars
 
493
    final_error_check
 
494
}
 
495
 
 
496
 
 
497
check_image()
 
498
{
 
499
    case "$IMAGE" in
 
500
        *~/*)
 
501
            IMAGE="$HOME/`basename $IMAGE`"
 
502
    esac
 
503
 
 
504
    case $NOARG in 
 
505
        yes|y|1)
 
506
            NUM=4
 
507
            ;;
 
508
        *)
 
509
            if [ -n "$IMAGE" ]; then
 
510
                NUM=5
 
511
            else
 
512
                NUM=6
 
513
            fi
 
514
            case $IMAGE in $ARGUMENT|"."|"./")
 
515
                error_msg 6
 
516
            esac
 
517
    esac
 
518
 
 
519
    if [ ! -e "$IMAGE" ]; then
 
520
        error_msg $NUM  
 
521
    else
 
522
        IMAGE_EXISTS=yes
 
523
    fi
 
524
}
 
525
 
 
526
 
 
527
exec_app()
 
528
{
 
529
    case `which $APP 2>&1` in
 
530
        */*$APP)
 
531
            check_image
 
532
            final_error_check
 
533
            exec $APP $ARGS "$IMAGE"
 
534
            ;;
 
535
        *)
 
536
            check_image
 
537
            check_config
 
538
            exec $FB_ARG "$IMAGE"
 
539
    esac
 
540
}
 
541
 
 
542
 
 
543
check_bsetroot_args()
 
544
{
 
545
    case $1 in
 
546
        -mod)
 
547
            ARGS="$1 $2 $3 $4 $5 $6 $7"
 
548
            ;;
 
549
        -gradient)
 
550
            ARGS="$1 $2 $3 $4 $5 $6"
 
551
            ;;
 
552
        -solid)
 
553
            ARGS="$1 $2"
 
554
    esac
 
555
}
 
556
 
 
557
 
 
558
exec_bsetroot()
 
559
{
 
560
    case `which bsetroot 2>&1` in
 
561
        */*bsetroot)
 
562
            exec bsetroot $ARGS
 
563
            ;;
 
564
        *)
 
565
            error_msg 7
 
566
    esac
 
567
}
 
568
 
 
569
 
 
570
check_old_config()
 
571
{
 
572
   if [ -f $CONFIG ]; then
 
573
        . $CONFIG
 
574
        if [ -n "$BGAPP" ] || [ -n "$CENTER_ARGS" ] || \
 
575
           [ -n "$TILED_ARGS" ] || [ -n "$OTHER_ARGS" ] || \
 
576
           [ -n "$DEFAULT_ARGS" ]; then
 
577
                echo " this version of $NAME ($VERSION) no longer uses the old configuration format."
 
578
                echo " please update $CONFIG with the new syntax:"
 
579
                echo
 
580
                echo "        CENTER=\"value\""
 
581
                echo "        FULL=\"value\""
 
582
                echo "        TILE=\"value\""
 
583
                echo "        DEFAULT=\"value\""
 
584
                echo
 
585
                echo "     see the sample.config file for details."
 
586
                exit 0
 
587
        fi
 
588
    fi
 
589
}
 
590
 
 
591
 
 
592
debug()
 
593
 
594
    echo "DEBUG:--------------------------"
 
595
    echo "config: $CONFIG"
 
596
    echo "full: $FULL"
 
597
    echo "tile: $TILE"
 
598
    echo "center: $CENTER"
 
599
    echo "default: $DEFAULT"
 
600
    echo "error: $ERROR"
 
601
    echo "app error: $APP_ERROR"
 
602
    echo "argument: $ARGUMENT"
 
603
    echo "________________________________"
 
604
    echo
 
605
}
 
606
 
 
607
IMAGE_APPS="display Esetroot wmsetbg xv xli qiv"
 
608
CONFIG="$HOME/.fluxbox/bsetbg"
 
609
NAME=bsetbg
 
610
VERSION=1.12
 
611
MORE="(C) 2000 by lordzork industries (http://lordzork.com/)"
 
612
PATH=$PATH:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/X11/bin
 
613
TMPFILE=/tmp/bsetbg.1
 
614
TMPFILE2=/tmp/bsetbg.2
 
615
ARGUMENT=$1
 
616
 
 
617
 
 
618
case `which grep 2>&1` in */*grep) : ;;
 
619
    *)
 
620
        error_msg nogrep
 
621
esac
 
622
 
 
623
case $1 in 
 
624
    *-full|-f|f)
 
625
        check_config
 
626
        IMAGE=$2 && check_image
 
627
        exec $FULL "$IMAGE"
 
628
        ;;
 
629
    *-tile|*tiled|-t|t)
 
630
        check_config
 
631
        IMAGE=$2 && check_image
 
632
        exec $TILE "$IMAGE"
 
633
        ;;
 
634
    *-center|-c|c)
 
635
        check_config
 
636
        IMAGE=$2 && check_image
 
637
        exec $CENTER "$IMAGE"
 
638
        ;;
 
639
    *-app|-a|a)
 
640
        APP=$2
 
641
        ARGS="$3"
 
642
        case $# in
 
643
            4)
 
644
                ARGMENT=$3
 
645
                IMAGE=$4 
 
646
                exec_app
 
647
                ;;
 
648
            5)
 
649
                COMMAND=`shift 1 && echo $*`
 
650
                ARGUMENT=$4
 
651
                IMAGE=$5
 
652
                exec_app
 
653
                ;;
 
654
            *)
 
655
                error_msg 8
 
656
        esac
 
657
        ;;
 
658
    -mod|-gradient|-solid)
 
659
        check_bsetroot_args $*
 
660
        exec_bsetroot
 
661
        ;;
 
662
    -display)
 
663
        shift 1 && check_bsetroot_args $*
 
664
        ARGS="-display $ARGS"
 
665
        exec_bsetroot
 
666
        ;;
 
667
    *-info|-i|i)
 
668
        INFO=yes
 
669
        check_config
 
670
        info_msg
 
671
        ;;
 
672
    *-version|-v|v)
 
673
        echo; echo "    $NAME version $VERSION"; echo "    $MORE";  exit 0
 
674
        ;;
 
675
    *-help|-h|h)
 
676
        help_msg
 
677
        ;;
 
678
    -r)
 
679
        case $UID in
 
680
            0)
 
681
                if [ -f $CONFIG ]; then
 
682
                    exit 1
 
683
                else
 
684
                    create_config
 
685
                fi              
 
686
                ;;
 
687
            *)
 
688
                exit 1
 
689
        esac
 
690
        ;;
 
691
    *)
 
692
        if [ -n "$1" ]; then
 
693
            NOARG=yes
 
694
            IMAGE=$1 && check_image
 
695
            check_config && final_error_check
 
696
            exec $DEFAULT "$1"
 
697
        else
 
698
            if [ ! -f $CONFIG ]; then
 
699
                create_config && exit 0
 
700
            fi
 
701
            help_msg
 
702
        fi
 
703
esac