Project

General

Profile

« Previous | Next » 

Revision 853d50e5

Added by jahoti almost 2 years ago

Normalize CLI options

Use saner defaults and (where suitable) environment variables

View differences:

build.sh
10 10
	errcho "$@"
11 11
    fi
12 12
    
13
    errcho "usage:  $0 [OPTION]... BROWSER"
14
    errcho
15
    errcho "the -- preceding long forms is optional"
16
    errcho "browsers:"
17
    errcho "    -C, chromium:     build for Chromium and derivatives"
18
    errcho "    -M, mozilla:      build for Firefox and derivatives"
19
    errcho "options:"
20
    errcho "    -b, build [LOC]:  set file/directory to use for building"
21
    errcho "    -f, force:        delete the build directory if it exists"
22
    errcho "                      instead of throwing an error."
23
    errcho "    -h, help:         print usage information and exit"
24
    errcho "    -o, output [LOC]: set output file/directory"
25
    errcho "    -z, zip_ext:      pack the extension as a file"
26
    errcho "    -7, 7zip:         use the '7z' command instead of 'zip'"
13
    echo "usage:  $0 [OPTION]... BROWSER"
14
    echo
15
    echo "long options can be provided either in the form"
16
    echo "'[OPTION](=[VALUE])' or '--[OPTION] (VALUE)'."
17
    echo "browsers:"
18
    echo "    -C, chromium:      build for Chromium and derivatives"
19
    echo "    -M, mozilla:       build for Firefox and derivatives"
20
    echo "options:"
21
    echo "    -b, build=[LOC]:   set file/directory to use for building"
22
    echo "    -h, help:          print usage information and exit"
23
    echo "    -o, output=[LOC]:  set output file/directory"
24
    echo "    -s, safe:          don't delete existing directories;"
25
    echo "                       throw an error instead."
26
    echo "    -z, zip:           pack the extension as a file"
27
    echo
28
    echo "environment variables (optional)"
29
    echo "    HAKETILO_ZIP: command to use for generating ZIP files"
30
    echo "    HAKETILO_CHROMIUM: command to user to invoke Chromium"
27 31
    
28 32
    exit $EXIT_STATUS
29 33
}
......
33 37
BROWSER=''
34 38
BUILDDIR=''
35 39
MAKEZIP=0
36
FORCE=0
37
ZIP_COMMAND='zip -r'
40
FORCE=1
38 41

  
39 42
while [ "x$1" != x ]; do
40 43
    case "$1" in
41
	-C | chromium | --chromium) BROWSER=chromium;;
42
	-M | mozilla | --mozilla)   BROWSER=mozilla;;
43
	-b | output | --build)      BUILDDIR="$2"
44
	                            shift;;
45
	-f | force | --force)       FORCE=1;;
46
	-h | help | --help)         print_usage;;
47
	-o | output | --output)     OUTPUT="$2"
48
	                            shift;;
49
	-z | zip_ext | --zip_ext)   MAKEZIP=1;;
50
	-7 | 7zip | --7zip)         ZIP_COMMAND='7z a';;
51
	*)                          print_usage 2 Unrecognized option "'$1'.";;
44
	-C | --chromium | chromium) BROWSER=chromium;;
45
	-M | --mozilla | mozilla)    BROWSER=mozilla;;
46
	-b | --build)           BUILDDIR="$2"; shift;;
47
	build=*) BUILDDIR="$(echo "$1" | cut -c 7-)";;
48
	-h | --help | help)              print_usage;;
49
	-o | --output)            OUTPUT="$2"; shift;;
50
	output=*)  OUTPUT="$(echo "$1" | cut -c 8-)";;
51
	-s | --safe | safe)                  FORCE=0;;
52
	-z | --zip | zip_ext)              MAKEZIP=1;;
53
	*) print_usage 2 Unrecognized option "'$1'.";;
52 54
    esac
53 55
    shift
54 56
done
......
57 59
    print_usage 1 No browser was specified.
58 60
fi
59 61

  
60
BUILDDIR="${BUILDDIR:-build_$BROWSER}"
62

  
63
if [ $MAKEZIP = 1 ]; then
64
    BUILDDIR="${BUILDDIR:-build_$BROWSER}"
65
    
66
    if [ "x$OUTPUT" = x ]; then
67
	case $BROWSER in
68
	    chromium) OUTPUT=build.crx;;
69
	    mozilla)  OUTPUT=build.xpi;;
70
	esac
71
    fi
72
else
73
    if [ "x$BUILDDIR" = x ]; then
74
	BUILDDIR="${OUTPUT:-build_$BROWSER}"
75
    fi
76
    
77
    OUTPUT="${OUTPUT:-$BUILDDIR}"
78
fi
79

  
61 80
if [ -e "$BUILDDIR" ]; then
62 81
    if [ $FORCE = 0 ]; then
63 82
	errcho "Build directory '$BUILDDIR' exists."
......
67 86
    fi
68 87
fi
69 88

  
70
if [ "x$OUTPUT" = x ]; then
71
    case "$MAKEZIP$BROWSER" in
72
	0*)        OUTPUT=build_$BROWSER;;
73
	1chromium) OUTPUT=build.crx;;
74
	1mozilla)  OUTPUT=build.xpi;;
75
    esac
76
fi
77

  
78 89
if [ -e "$OUTPUT" ]; then
79
    errcho "Output location '$OUTPUT' exists."
80
    exit 3
90
    if [ $FORCE = 0 ]; then
91
	errcho "Output location '$OUTPUT' exists."
92
	exit 3
93
    else
94
	rm -rf "$BUILDDIR"
95
    fi
81 96
fi
82 97

  
83 98
mkdir "$BUILDDIR"
lib_build.sh
294 294
make_zip() (
295 295
    cd "$BUILDDIR"
296 296
    case $BROWSER in
297
	mozilla) $ZIP_COMMAND build.zip *;;
297
	mozilla) ${HAKETILO_ZIP:-zip -r} build.zip *;;
298 298
	chromium) exit 92;; # Still to do
299 299
    esac
300 300
)

Also available in: Unified diff