summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/commit.rc19
-rw-r--r--scripts/commit.sh16
-rw-r--r--scripts/configheader.rc18
-rw-r--r--scripts/fetch-curl.rc45
-rw-r--r--scripts/fetch-curl.sh40
-rw-r--r--scripts/fetch-git.rc15
-rw-r--r--scripts/fetch-git.sh13
-rw-r--r--scripts/hash.rc24
-rw-r--r--scripts/hash.sh18
-rw-r--r--scripts/probe.rc7
-rw-r--r--scripts/probe.sh7
-rw-r--r--scripts/tree.rc30
-rw-r--r--scripts/tree.sh19
13 files changed, 113 insertions, 158 deletions
diff --git a/scripts/commit.rc b/scripts/commit.rc
deleted file mode 100644
index 870d7ab3..00000000
--- a/scripts/commit.rc
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/rc
-
-flag e +
-
-repo=$1
-branch=$2
-tag=$3
-out=$4
-
-fn checkstatus {}
-
-if(git -C $repo show-ref -q --verify refs/heads/$branch)
- parent=(-p $branch)
-if not parent=()
-
-message='oasis built by '`{id -un}
-commit=`{echo $message | git -C $repo commit-tree $tag $parent} ; checkstatus
-git -C $repo update-ref refs/heads/$branch $commit
-echo $commit > $out.tmp && mv $out.tmp $out
diff --git a/scripts/commit.sh b/scripts/commit.sh
new file mode 100644
index 00000000..b4959f48
--- /dev/null
+++ b/scripts/commit.sh
@@ -0,0 +1,16 @@
+set -e
+
+repo=$1
+branch=$2
+tag=$3
+out=$4
+
+if git -C "$repo" show-ref -q --verify "refs/heads/$branch" ; then
+ set -- -p "$branch"
+else
+ set --
+fi
+
+commit=$(git -C "$repo" commit-tree -m "oasis built by $(id -un)" "$@" "$tag")
+git -C "$repo" update-ref "refs/heads/$branch" "$commit"
+echo "$commit" >"$out.tmp" && mv "$out.tmp" "$out"
diff --git a/scripts/configheader.rc b/scripts/configheader.rc
deleted file mode 100644
index c1655f91..00000000
--- a/scripts/configheader.rc
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/rc
-
-flag e +
-
-fn checkstatus {}
-
-posix_defines=`{mktemp}
-checkstatus
-
-fn sigexit {
- status=() rm $posix_defines
-}
-
-awk '{if($1 == "#define") print $2 ; if($2 == "#undef") print $3}' include/config-posix.h >$posix_defines
-defines=`{awk '{if($1 == "#undef") print $2}' $1 | grep -F -x -v -f $posix_defines}
-checkstatus
-
-printf '#undef %s\n' $defines
diff --git a/scripts/fetch-curl.rc b/scripts/fetch-curl.rc
deleted file mode 100644
index a525bcdf..00000000
--- a/scripts/fetch-curl.rc
+++ /dev/null
@@ -1,45 +0,0 @@
-flag e +
-
-if(~ $#* 0) {
- echo 'usage: fetch-curl.rc dir [paxflags...]' >[1=2]
- exit 2
-}
-
-cd $1
-shift
-
-if([ -e src ]) rm -rf src
-
-if(! sha256sum -c sha256 >[2]/dev/null) {
- curl -L -K url -O
- sha256sum -c sha256
-}
-
-for(archive in `{awk '{print $2}' sha256}) {
- switch($archive) {
- case *.tar.gz *.tgz
- tool=zcat
- case *.tar.bz2
- tool=bzcat
- case *.tar.xz
- tool=xzcat
- case *
- tool=()
- }
- flags=()
- while(! ~ $1 '' ';') {
- flags=($flags $1)
- shift
- }
- if(~ $#flags 0)
- flags=(-s '/^\.\|[^\/]*/src/' '*/*')
- shift
- if(! ~ $#tool 0) $tool $archive | pax -r $flags
-}
-
-if([ -d patch ]) {
- if(prefix=`{git rev-parse --show-prefix >[2]/dev/null}) dir=$prefix^src
- if not dir=src
- git apply -v '--whitespace=nowarn' --directory $dir patch/*
-}
-status=()
diff --git a/scripts/fetch-curl.sh b/scripts/fetch-curl.sh
new file mode 100644
index 00000000..86f7598e
--- /dev/null
+++ b/scripts/fetch-curl.sh
@@ -0,0 +1,40 @@
+set -e
+
+if [ "$#" != 1 ] ; then
+ echo 'usage: fetch-curl.sh dir' >&2
+ exit 2
+fi
+
+dir=$1
+shift
+
+cd "$dir"
+
+if [ -e src ] ; then
+ rm -rf src
+fi
+
+if ! sha256sum -c sha256 2>/dev/null ; then
+ curl -L -K url -O
+ sha256sum -c sha256
+fi
+
+while read -r checksum archive ; do
+ case $archive in
+ *.tar.gz|*.tgz)
+ tool=zcat ;;
+ *.tar.bz2)
+ tool=bzcat ;;
+ *.tar.xz)
+ tool=xzcat ;;
+ *)
+ tool=
+ esac
+ if [ -n "$tool" ] ; then
+ "$tool" "$archive" | pax -r -s '/^\.\|[^\/]*/src/' '*/*'
+ fi
+done <sha256
+
+if [ -d patch ] ; then
+ git apply -v --whitespace=nowarn --directory "$dir/src" patch/*
+fi
diff --git a/scripts/fetch-git.rc b/scripts/fetch-git.rc
deleted file mode 100644
index 14f28afc..00000000
--- a/scripts/fetch-git.rc
+++ /dev/null
@@ -1,15 +0,0 @@
-flag e +
-
-if(! ~ $#* 1) {
- echo 'usage: fetch-git.rc dir' >[1=2]
- exit 2
-}
-
-cd $1
-
-git submodule update --init --checkout src
-if([ -d patch ]) {
- patches=patch/*
- git -C src am '--whitespace=nowarn' ../$patches
-}
-status=()
diff --git a/scripts/fetch-git.sh b/scripts/fetch-git.sh
new file mode 100644
index 00000000..eea32d1c
--- /dev/null
+++ b/scripts/fetch-git.sh
@@ -0,0 +1,13 @@
+set -e
+
+if [ "$#" != 1 ] ; then
+ echo 'usage: fetch-git.sh dir' >&2
+ exit 2
+fi
+
+cd "$1"
+
+git submodule update --init --checkout src
+if [ -d patch ] ; then
+ git -C src am --whitespace=nowarn "$PWD"/patch/*
+fi
diff --git a/scripts/hash.rc b/scripts/hash.rc
deleted file mode 100644
index 90151183..00000000
--- a/scripts/hash.rc
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/rc
-
-flag e +
-
-repo=$1
-mode=$2
-name=$3
-shift 3
-
-fn checkstatus {}
-
-hash=`{
- switch($mode) {
- case 12????
- printf %s $1 | git -C $repo hash-object -w --stdin
- case 10????
- git -C $repo hash-object -w --stdin <$1
- case *
- status=1
- }
-}
-checkstatus
-
-printf '%s %s\t%s\n' $mode $hash $name
diff --git a/scripts/hash.sh b/scripts/hash.sh
new file mode 100644
index 00000000..15861d27
--- /dev/null
+++ b/scripts/hash.sh
@@ -0,0 +1,18 @@
+set -e
+
+repo=$1
+mode=$2
+name=$3
+shift 3
+
+case "$mode" in
+12????)
+ hash=$(printf %s "$1" | git -C "$repo" hash-object -w --stdin) ;;
+10????)
+ hash=$(git -C "$repo" hash-object -w --stdin <"$1") ;;
+*)
+ echo "invalid mode: $mode"
+ exit 1
+esac
+
+printf '%s %s\t%s\n' "$mode" "$hash" "$name"
diff --git a/scripts/probe.rc b/scripts/probe.rc
deleted file mode 100644
index aba1099d..00000000
--- a/scripts/probe.rc
+++ /dev/null
@@ -1,7 +0,0 @@
-flag e +
-
-var=$1
-shift
-if($* >[2]/dev/null)
- echo '#define '$var' 1'
-status=()
diff --git a/scripts/probe.sh b/scripts/probe.sh
new file mode 100644
index 00000000..70867cdb
--- /dev/null
+++ b/scripts/probe.sh
@@ -0,0 +1,7 @@
+set -e
+
+var=$1
+shift
+if "$@" 2>/dev/null ; then
+ echo "#define $var 1"
+fi
diff --git a/scripts/tree.rc b/scripts/tree.rc
deleted file mode 100644
index c14e87e0..00000000
--- a/scripts/tree.rc
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/rc
-
-flag e +
-
-repo=$1
-tag=$2
-index=$3
-out=$4
-ifs='
-'
-
-fn checkstatus {}
-
-GIT_INDEX_FILE=`{pwd}^/$out.index {
- checkstatus
- git -C $repo read-tree --empty
- git -C $repo update-index --index-info <$index
- tree=`{git -C $repo write-tree} ; checkstatus
- rm $out.index
-}
-git -C $repo update-ref refs/tags/$tag $tree
-
-if([ -e $out ]) {
- oldtree=`{cat $out} ; checkstatus
- if(~ $tree $oldtree)
- exit 0
-}
-
-echo $tree >$out.tmp
-mv $out.tmp $out
diff --git a/scripts/tree.sh b/scripts/tree.sh
new file mode 100644
index 00000000..15ae6991
--- /dev/null
+++ b/scripts/tree.sh
@@ -0,0 +1,19 @@
+set -e
+
+repo=$1
+tag=$2
+index=$3
+out=$4
+
+export GIT_INDEX_FILE="$PWD/$out.index"
+git -C "$repo" read-tree --empty
+git -C "$repo" update-index --index-info <"$index"
+tree=$(git -C "$repo" write-tree)
+git -C "$repo" update-ref "refs/tags/$tag" "$tree"
+
+printf '%s\n' "$tree" >"$out.tmp"
+if cmp -s "$out" "$out.tmp" ; then
+ rm "$out.tmp"
+else
+ mv "$out.tmp" "$out"
+fi