File: lgeneral

package info (click to toggle)
game-data-packager 37
  • links: PTS, VCS
  • area: contrib
  • in suites: jessie, jessie-kfreebsd
  • size: 512 kB
  • ctags: 97
  • sloc: sh: 235; makefile: 109
file content (107 lines) | stat: -rw-r--r-- 2,613 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# vim:set ft=sh:

SHORTNAME=lgeneral
LONGNAME="LGeneral"

TGZSUM=40c4be23f60d1dc732aabe13b58fc5e3

lgeneral_usage() {
    echo "game-data-packager ${SHORTNAME} arguments:"
    printf "\tgame-data-packager ${SHORTNAME} [ -f path ] | [ -w ]
\t\t-f file\t\tpath to your tar.gz compressed Panzer General DAT directory\n\
\t\t-w\t\tfetch compressed pg-data.tar.gz from the web\n"
}

verify_args() {
    case $# in
        0)
            lgeneral_usage
            exit 0
            ;;
        1)
            if [ "$1" != "-w" ]; then
                usage >&2
                lgeneral_usage >&2
                exit 1
            fi
            downloadtgz
            ;;
        2)
            if [ "$1" != "-f" ]; then
                usage >&2
                lgeneral_usage >&2
                exit 1
            fi
            downloaded=false
            lgeneraltgz="$2"
            ;;
        *)
            usage >&2
            lgeneral_usage >&2
            exit 1
            ;;
    esac
}

lgeneralmirrors=$LIBDIR/lgeneral-mirrors

downloadtgz() {
    dest="$WORKDIR/pg-data.tar.gz"
    mirror=$(grep -v ^# "$lgeneralmirrors" | sort -R | head -n1)
    for try in $mirror; do
        if wget --progress=dot --directory-prefix "$WORKDIR" -c "$try"
        then
            lgeneraltgz="$dest"
            downloaded=true
            return
        fi
    done
    die "error: could not find pg-data.tar.gz at our chosen mirror"
}

DEBBASE="lgeneral-data-nonfree_${GAME_PACKAGE_VERSION}_all.deb"
DEB="$DATADIR/$DEBBASE"

go() {
    verify_args "$@"
    require_program lgc-pg lgc-pg

    TGZFILE=`unravel "$lgeneraltgz"`

    verify_file "$TGZFILE"

    verify_md5sum_alternatives "$TGZFILE" "$TGZSUM" \
        "warning: checksum is not what we expected"

    OUTFILE=`unravel "$OUTDIR"`"/$DEBBASE"
    cp -p "$DEB" "$OUTFILE"
    oldpwd=`pwd`
    cd "$WORKDIR"

    # create directory structure required by lgc-pg
    mkdir -p lgeneral/gfx/flags \
             lgeneral/gfx/terrain \
             lgeneral/gfx/units \
             lgeneral/maps/pg \
             lgeneral/nations \
             lgeneral/scenarios/pg \
             lgeneral/sounds/pg \
             lgeneral/units

    # extract pg-data and convert to lgeneral's native file format
    tar xfz "$TGZFILE"
    lgc-pg -s pg-data/ -d lgeneral/
    
    slipstream_dir "$OUTFILE" "usr/share/games/" "lgeneral/"

    if [ "$downloaded" = "true" ]; then
        rm "$TGZFILE"
        rm -rf pg-data/
        rm -rf lgeneral/
    elif [ "$downloaded" = "false" ]; then
        rm -rf pg-data/
        rm -rf lgeneral/
    fi

    cd "$oldpwd"
}