source: autobuild/scripts/utils @ 905

Last change on this file since 905 was 905, checked in by moo, 2 years ago

import auto build scripts

File size: 1.8 KB
Line 
1#!/bin/sh
2
3# variable functions
4valueof() { # {{{1
5    eval echo '"$'$1'"'
6}
7valuesof() { # {{{1
8    eval echo '"${'$1'[@]}"'
9}
10storevalueof() { # {{{1
11    eval $1'="$'$2'"'
12}
13storevaluesof() { # {{{1
14    eval $1'="${'$2'[@]}"'
15}
16cleararray() { # {{{1
17    unset "${1}s"
18}
19pushv() { # {{{1
20    local name=$1
21    shift
22    local n=$(sizeof "$name")
23    while [[ $# -gt 0 ]]; do
24        eval "${name}s[$n]"='"$1"'
25        ((n=n+1))
26        shift
27    done
28}
29push() { # {{{1
30    local n=$(sizeof "$1")
31    eval "${1}s[$n]=$""${1}"
32    eval "${1}="
33}
34pop() { # {{{1
35    local n=$(($(sizeof "$1") - 1))
36    eval $1='${'"${1}s[$n]}"
37    eval unset "'${1}s[$n]'"
38}
39sizeof() { # {{{1
40    eval echo '${#'"${1}s[@]}"
41}
42# }}}
43
44filter_in() { # {{{1
45    local pattern="$1"
46    shift
47    local value
48    for value in "$@"; do
49        eval '
50        case "$value" in
51        '$pattern')
52            echo "$value"
53            ;;
54        esac
55        '
56    done
57}
58filter_out() { # {{{1
59    local pattern="$1"
60    shift
61    local value
62    for value in "$@"; do
63        eval '
64        case "$value" in
65        '$pattern')
66            ;;
67        *)
68            echo "$value"
69            ;;
70        esac
71        '
72    done
73}
74getVersionPart() { # {{{1
75    local part="$1"
76    local version="$2"
77    local parts="${version//./ }"
78    parts="${parts//-/ }"
79    parts=($parts)
80    echo "${parts[$part]}"
81}
82# }}}
83
84# shell functions
85die() { # {{{1
86    echo "*** ERROR: $*" >&2
87    exit 1
88}
89
90do_textfile() { # {{{1
91    if isTest; then
92        unix2dos -D "$@"
93    else
94        unix2dos -D "$@" >/dev/null 2>&1
95    fi
96}
97namize() { # {{{1
98    local args='s#[^a-zA-Z0-9]#_#g'
99    if [[ $# == 0 ]]; then
100        sed $args
101    else
102        echo "$*" | sed $args
103    fi
104}
105# }}}
106toupper() { # {{{1
107    local args='[:lower:] [:upper:]'
108    if [[ $# == 0 ]]; then
109        tr $args
110    else
111        echo "$*" | tr $args
112    fi
113}
114
115tolower() { # {{{1
116    local args='[:upper:] [:lower:]'
117    if [[ $# == 0 ]]; then
118        tr $args
119    else
120        echo "$*" | tr $args
121    fi
122}
123# }}}
124
125begin() { # {{{1
126    printf "%s" "$* ..."
127}
128
129end() { # {{{1
130    if [[ $# == 0 ]]; then
131        echo " done"
132    else
133        echo " $*"
134    fi
135    return 0
136}
137# }}}
Note: See TracBrowser for help on using the repository browser.