diff options
| author | PS <p@0x53.net> | 2026-02-01 12:06:01 +0100 |
|---|---|---|
| committer | PS <p@0x53.net> | 2026-02-01 12:06:01 +0100 |
| commit | 0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c (patch) | |
| tree | 30e5af481a10ad099076ec172542a8dc8ffeea58 /tools | |
| download | goetia-freebsd-init-0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c.tar.gz goetia-freebsd-init-0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c.tar.bz2 goetia-freebsd-init-0f936e1351d95d7b7bb8ac4b64fc2a87f2982d8c.zip | |
version 0.2.0.0
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/gen-deps.sh | 35 | ||||
| -rwxr-xr-x | tools/gen-targets.sh | 56 | ||||
| -rwxr-xr-x | tools/install.sh | 69 |
3 files changed, 160 insertions, 0 deletions
diff --git a/tools/gen-deps.sh b/tools/gen-deps.sh new file mode 100755 index 0000000..fafb347 --- /dev/null +++ b/tools/gen-deps.sh @@ -0,0 +1,35 @@ +#!/bin/sh -e + +. package/info + +echo '#' +echo '# This file has been generated by tools/gen-deps.sh' +echo '#' +echo + +if test -d src/bin +then + cd src/bin + for FILE in $(find * -type f 2> /dev/null); do + echo "${FILE}: src/bin/${FILE}" + echo "\$(DESTDIR)\$(bindir)/${FILE}: ${FILE}" + done + cd ../.. +fi + +if test -d src/lib +then + cd src/lib + for FILE in $(find * -type f 2> /dev/null); do + echo "${FILE}: src/lib/${FILE}" + echo "\$(DESTDIR)\$(libdir)/${FILE}: ${FILE}" + done + cd ../.. +fi + +if test -f package/extras +then + for EXTRA in $(cat package/extras); do + echo "\$(DESTDIR)\$(libdir)/${EXTRA}: ${EXTRA}" + done +fi diff --git a/tools/gen-targets.sh b/tools/gen-targets.sh new file mode 100755 index 0000000..3280748 --- /dev/null +++ b/tools/gen-targets.sh @@ -0,0 +1,56 @@ +#!/bin/sh -e + +. package/info + +echo '#' +echo '# This file has been generated by tools/gen-targets.sh' +echo '#' +echo + +if test -d src/bin +then + cd src/bin + + echo "ALL_BINS ::= \\" + + for FILE in $(find * -type f 2> /dev/null) ; do + echo "\t${FILE} \\" + done + + echo + echo "INSTALL_BINS ::= \\" + + for FILE in $(find * -type f 2> /dev/null) ; do + echo "\t\$(DESTDIR)\$(bindir)/${FILE} \\" + done + + echo + echo "SLASHCOMMAND_BINS ::= \\" + + for FILE in $(find * -type f 2> /dev/null) ; do + echo "\t\$(DESTDIR)\$(sproot)/command/${FILE} \\" + done + + cd ../.. + echo +fi + +if test -d src/lib +then + cd src/lib + + echo "ALL_LIBS ::= \\" + for FILE in $(find * -type f 2> /dev/null) ; do + echo "\t${FILE} \\" + done + + echo + + echo "INSTALL_LIBS ::= \\" + for FILE in $(find * -type f 2> /dev/null) ; do + echo "\t\$(DESTDIR)\$(libdir)/${FILE} \\" + done + + cd ../.. + echo +fi diff --git a/tools/install.sh b/tools/install.sh new file mode 100755 index 0000000..e96dd7b --- /dev/null +++ b/tools/install.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +usage() { + echo "usage: $0 [ -D ] [ -l ] [ -m mode ] [ -O owner:group ] src dst" 1>&2 + exit 1 +} + +mkdirp=false +symlink=false +mode=0755 +og= + +while getopts Dlm:O: name ; do + case "$name" in + D) mkdirp=true ;; + l) symlink=true ;; + m) mode=$OPTARG ;; + O) og=$OPTARG ;; + ?) usage ;; + esac +done +shift $(($OPTIND - 1)) + +test "$#" -eq 2 || usage +src=$1 +dst=$2 +tmp="$dst.tmp.$$" + +case "$dst" in + */) echo "$0: $dst ends in /" 1>&2 ; exit 1 ;; +esac + +set -C +set -e + +if $mkdirp ; then + umask 022 + case "$2" in + */*) mkdir -p "${dst%/*}" ;; + esac +fi + +trap 'rm -f "$tmp"' EXIT INT QUIT TERM HUP + +umask 077 + +if $symlink ; then + ln -s "$src" "$tmp" +else + cat < "$1" > "$tmp" + if test -n "$og" ; then + chown -- "$og" "$tmp" + fi + chmod -- "$mode" "$tmp" +fi + +mv -f "$tmp" "$dst" +if test -d "$dst" ; then + rm -f "$dst/$(basename $tmp)" + if $symlink ; then + mkdir "$tmp" + ln -s "$src" "$tmp/$(basename $dst)" + mv -f "$tmp/$(basename $dst)" "${dst%/*}" + rmdir "$tmp" + else + echo "$0: $dst is a directory" 1>&2 + exit 1 + fi +fi |
