summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/get.sh20
-rw-r--r--include/init.sh23
-rw-r--r--include/lib.sh20
-rw-r--r--include/release.sh2
-rw-r--r--include/rom.sh2
-rw-r--r--include/tree.sh10
-rw-r--r--include/vendor.sh2
7 files changed, 46 insertions, 33 deletions
diff --git a/include/get.sh b/include/get.sh
index 667ab398..6f1b5f1d 100644
--- a/include/get.sh
+++ b/include/get.sh
@@ -22,7 +22,7 @@ fetch_project()
eval "`setvars "" xtree`"
eval "`setcfg "config/git/$project/pkg.cfg"`"
- chkvars url
+ chkvars url bkup_url
[ -n "$xtree" ] && x_ ./mk -f coreboot "$xtree"
[ -z "$depend" ] || for d in $depend ; do
@@ -85,9 +85,12 @@ xbmkget()
echk="f" && [ "$1" = "git" ] && echk="d"
for url in "$2" "$3"; do
- [ -n "$url" ] && try_file "$url" "$@" && \
- eval "[ -$echk \"$4\" ] && return 0"
- done && err "$1 $2 $3 $4: not downloaded"; :
+ [ -n "$url" ] || err "empty URL given in: xbmkget $*"
+ try_file "$url" "$@" || continue
+ eval "[ -$echk \"$4\" ] || continue"
+ return 0 # successful download/copy
+ done
+ err "$1 $2 $3 $4: not downloaded"; :
}
try_file()
@@ -101,7 +104,8 @@ try_file()
echk="d" && [ "$2" != "git" ] && echk="f" && \
bad_checksum "$6" "$cached" 2>/dev/null && x_ rm -f "$cached"
- eval "[ -$echk \"$cached\" ] || try_$2 \"\$cached\" \"\$@\" || return 1"
+ evalchk="[ -$echk \"$cached\" ] || " && [ "$2" = "git" ] && evalchk=""
+ eval "${evalchk}try_$2 \"\$cached\" \"\$@\" || return 1"
[ "$2" != "git" ] && [ -f "$5" ] && \
bad_checksum "$6" "$5" 2>/dev/null && x_ cp "$cached" "$5"
eval "[ -$echk \"$cached\" ] || return 1"
@@ -140,8 +144,10 @@ try_git()
[ -d "$gitdest" ] || x_ mkdir -p "${gitdest%/*}"
[ -d "$gitdest" ] || x_ mv "$tmpgitcache" "$gitdest"
- ( x_ git -C "$gitdest" remote add main "$4" 2>/dev/null ) || :
- ( x_ git -C "$gitdest" remote add backup "$5" 2>/dev/null ) || :
+ ( x_ git -C "$gitdest" remote remove main ) || :
+ ( x_ git -C "$gitdest" remote remove backup ) || :
+ x_ git -C "$gitdest" remote add main "$4"
+ x_ git -C "$gitdest" remote add backup "$5"
( x_ git -C "$gitdest" fetch --all ) || :
( x_ git -C "$gitdest" pull --all ) || :; :
}
diff --git a/include/init.sh b/include/init.sh
index ee19c398..38eb1c81 100644
--- a/include/init.sh
+++ b/include/init.sh
@@ -30,7 +30,7 @@ xbmk_init()
id -u 1>/dev/null 2>/dev/null || err "suid check failed (id -u)"
[ "$(id -u)" != "0" ] || err "this command as root is not permitted"
- for init_cmd in get_version set_env git_init child_exec; do
+ for init_cmd in get_version set_env set_threads git_init child_exec; do
xbmk_$init_cmd "$@" || break
done
}
@@ -76,7 +76,7 @@ xbmk_set_env()
if [ "$is_child" = "y" ]; then
[ -z "${XBMK_CACHE+x}" ] && err "XBMK_CACHE unset on child"
- [ -z "${XBMK_THREADS+x}" ] && err "XBMK_THREADS unset on child"
+ [ -z "${XBMK_THREADS+x}" ] && xbmk_set_threads
e "lock" f missing && err "lock file absent on child"
return 1
fi
@@ -89,15 +89,9 @@ xbmk_set_env()
export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)"
xbmktmp="$TMPDIR"
- # XBMK_CACHE is a directory, for caching downloads and git repon
- [ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$xbmkpwd/cache"
- [ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache"
+ export XBMK_CACHE="$xbmkpwd/cache"
[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \
err "cachedir '$xbmkpwd/cache' is a symlink"
- [ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache"
- xbmkcache="`findpath "$XBMK_CACHE"`" || \
- err "Can't resolve cachedir: '$XBMK_CACHE'"
- export XBMK_CACHE="$xbmkcache"
[ ! -e "$XBMK_CACHE" ] || \
[ -d "$XBMK_CACHE" ] || err "cachedir '$XBMK_CACHE' is a file"; :
@@ -110,10 +104,6 @@ xbmk_set_env()
[ "$XBMK_RELEASE" = "Y" ] && export XBMK_RELEASE="y"
[ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n"
- [ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1
- expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
- 1>/dev/null 2>/dev/null || export XBMK_THREADS=1
-
xbmk_set_version
export LOCALVERSION="-$projectname-${version%%-*}"
@@ -123,6 +113,13 @@ xbmk_set_env()
xbmk_set_pyver
}
+xbmk_set_threads()
+{
+ [ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1
+ expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
+ 1>/dev/null 2>/dev/null || export XBMK_THREADS=1
+}
+
xbmk_set_version()
{
version_="$version"
diff --git a/include/lib.sh b/include/lib.sh
index 6c831795..7c4d71ea 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -53,8 +53,10 @@ setvars()
fi
val="$1"
shift 1
- for var in "$@"; do
- _setvars="$var=\"$val\"; $_setvars"
+ while true; do
+ [ $# -lt 1 ] && break
+ _setvars="$1=\"$val\"; $_setvars"
+ shift 1
done
printf "%s\n" "${_setvars% }"
}
@@ -69,9 +71,11 @@ setcfg()
chkvars()
{
- for var in "$@"; do
- eval "[ -n \"\${$var+x}\" ] || err \"$var unset\""
- eval "[ -n \"\$$var\" ] || err \"$var unset\""
+ while true; do
+ [ $# -lt 1 ] && break
+ eval "[ -n \"\${$1+x}\" ] || err \"$1 unset\""
+ eval "[ -n \"\$$1\" ] || err \"$1 unset\""
+ shift 1
done; :
}
@@ -106,9 +110,9 @@ fx_()
dx_()
{
- [ -f "$2" ] && while read -r fx; do
- $1 "$fx" || return 1
- done < "$2"; :
+ [ ! -f "$2" ] || while read -r fx; do
+ $1 "$fx" || return 1; :
+ done < "$2" || err "dx_ $*: cannot read '$2'"; :
}
x_()
diff --git a/include/release.sh b/include/release.sh
index 5d6da466..f23ed541 100644
--- a/include/release.sh
+++ b/include/release.sh
@@ -27,6 +27,8 @@ release()
remkdir "$vdir"
x_ git clone . "$rsrc"
+ x_ cp ".version" "$rsrc/.version"
+ x_ cp ".versiondate" "$rsrc/.versiondate"
prep_release src
prep_release tarball
diff --git a/include/rom.sh b/include/rom.sh
index 65900a01..1c39979d 100644
--- a/include/rom.sh
+++ b/include/rom.sh
@@ -20,6 +20,8 @@ buildser()
copyps1bios()
{
+ [ "$dry" = ":" ] && return 0; :
+
remkdir "bin/playstation"
x_ cp src/pcsx-redux/src/mips/openbios/openbios.bin bin/playstation
diff --git a/include/tree.sh b/include/tree.sh
index 25d4732c..83887864 100644
--- a/include/tree.sh
+++ b/include/tree.sh
@@ -275,7 +275,8 @@ elfcheck()
handle_makefile()
{
- $dry check_makefile "$srcdir" && x_ make -C "$srcdir" $cleanargs clean
+ $dry check_makefile "$srcdir" && \
+ $dry x_ make -C "$srcdir" $cleanargs clean
[ -f "$defconfig" ] && x_ cp "$defconfig" "$srcdir/.config"
[ -n "$mode" ] || [ -n "$btype" ] || $dry make -C \
@@ -332,8 +333,9 @@ check_makefile()
copy_elf()
{
- [ -f "$listfile" ] && x_ mkdir -p "$dest_dir" && while read -r f; do
- [ -f "$srcdir/$f" ] && x_ cp "$srcdir/$f" "$dest_dir"
- done < "$listfile"
+ [ -f "$listfile" ] && x_ mkdir -p "$dest_dir"
+ [ ! -f "$listfile" ] || while read -r f; do
+ [ -f "$srcdir/$f" ] && x_ cp "$srcdir/$f" "$dest_dir"; :
+ done < "$listfile" || err "copy_elf $*: cannot read '$listfile'"; :
x_ make clean -C "$srcdir" $cleanargs
}
diff --git a/include/vendor.sh b/include/vendor.sh
index 2732eade..99fc7467 100644
--- a/include/vendor.sh
+++ b/include/vendor.sh
@@ -107,7 +107,7 @@ fetch()
[ "$dl_type" = "fsp" ] && for _cdl in dl dl_bkup; do
eval "$_cdl=\"\${$_cdl##*../}\"; _cdp=\"\$$_cdl\""
[ -f "$_cdp" ] || _cdp="$cbdir/$_cdp"
- [ -f "$_cdp" ] && eval "$_cdl=\"$_cdp\""
+ [ -f "$_cdp" ] && eval "$_cdl=\"$_cdp\""; :
done; :
# download the file (from the internet) to extract from