From cb55ae44e1e5a1a0fa50d3e28a9904fdf56aa195 Mon Sep 17 00:00:00 2001 From: Ella Stanforth <23418164+Ella-0@users.noreply.github.com> Date: Thu, 28 Oct 2021 14:02:47 +0000 Subject: [PATCH] initial commit --- .editorconfig | 8 ++++ README.md | 1 + iglupkg.sh | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 .editorconfig create mode 100644 README.md create mode 100755 iglupkg.sh diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..20443bd --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true +[*] +insert_final_newline = true +trim_trailing_whitespace = true + +[*.sh] +indent_style = tab +tab_width = 4 diff --git a/README.md b/README.md new file mode 100644 index 0000000..6be0373 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# The Iglunix package manager diff --git a/iglupkg.sh b/iglupkg.sh new file mode 100755 index 0000000..06c0362 --- /dev/null +++ b/iglupkg.sh @@ -0,0 +1,111 @@ +#!/bin/sh + +CWD="$(pwd)" + +fatal() { + echo "ERROR: $@" + exit 1 +} + +warn() { + echo "WARNING: $@" +} + +assert_file() { + stat "$1" \ + > /dev/null \ + 2> /dev/null && return + + fatal "$1 does not exist!" +} + +make_dir() { + state "$1" \ + > /dev/null \ + 2> /dev/null && return + + mkdir -p "$1" +} + +assert_file build.sh + +. ./build.sh + +srcdir="$CWD/src" +outdir="$CWD/out" +pkgdir="$outdir/$pkgname-$pkgver" +pkgfile="$outdir/$pkgname-$pkgver.tar.zst" + +genmeta() { + echo "[pkg]" + echo "pkgname=$pkgname" + echo "pkgver=$pkgver" + echo "deps=$deps" + echo "" + echo "[license]" + license + echo "" + echo "[backup]" + backup + echo "" + echo "[fs]" + + cd "$pkgdir" + find * + cd "$srcdir" +} + +if [ ! -n "$FAKEROOTKEY" ]; then + stat $pkgfile \ + > /dev/null \ + 2> /dev/null \ + && fatal 'Package already built' + + stat $srcdir \ + > /dev/null \ + 2> /dev/null \ + && warn 'Package partially built' + + make_dir "$srcdir" + + cd "$srcdir" + + echo "==========" + echo " Fetching " + echo "==========" + + fetch + + cd "$srcdir" + + echo "==========" + echo " Building " + echo "==========" + + build + + cd "$CWD" + + fakeroot "$0" +else + echo "==========" + echo " Bundling " + echo "==========" + + make_dir "$pkgdir" + make_dir "$outdir" + + cd "$srcdir" + + pkgdir="$pkgdir" package + + cd "$srcdir" + + install -d "$pkgdir/usr/share/iglupkg" + + pkgmetafile="$pkgdir/usr/share/iglupkg/$pkgname" + + genmeta > "$pkgmetafile" + + tar -I zstd -cf "$pkgfile" * +fi