2023-07-24 15:07:49 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
|
|
|
|
source $(dirname $0)/env.sh
|
|
|
|
|
|
|
|
cd $LUNA_ROOT
|
|
|
|
|
|
|
|
PORT_NAME=$1
|
|
|
|
|
|
|
|
if ! [ -f ports/$PORT_NAME/PACKAGE ]
|
|
|
|
then
|
|
|
|
echo "Package $PORT_NAME does not exist. Make sure there is a valid PACKAGE file in the appropriate directory!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
source ports/$PORT_NAME/PACKAGE
|
|
|
|
|
|
|
|
if [ -f ports/local/$name-$version.tar.gz ]; then
|
|
|
|
echo "Package $PORT_NAME is already installed and up to date!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if ! [ -f ports/out/$name-$version.tar.gz ]; then
|
|
|
|
tools/make-package.sh $PORT_NAME
|
|
|
|
fi
|
|
|
|
|
|
|
|
PORT_FILES=$LUNA_BASE/usr/share/pkgdb/$PORT_NAME.files
|
|
|
|
|
|
|
|
if [ -f $PORT_FILES ]
|
|
|
|
then
|
|
|
|
echo "Package $PORT_NAME is installed, but is an outdated version. Updating."
|
|
|
|
tools/uninstall-package.sh $PORT_NAME
|
|
|
|
fi
|
|
|
|
|
|
|
|
cp ports/out/$name-$version.tar.gz ports/local/
|
|
|
|
|
|
|
|
mkdir -p $LUNA_BASE/usr/share/pkgdb/
|
|
|
|
|
|
|
|
cd $LUNA_BASE
|
|
|
|
|
2023-07-24 17:14:22 +00:00
|
|
|
find -type f | sed 's|^./||' > /tmp/before.list
|
2023-07-24 15:07:49 +00:00
|
|
|
|
|
|
|
tar -C $LUNA_BASE -xf $LUNA_ROOT/ports/local/$name-$version.tar.gz
|
|
|
|
|
2023-07-24 17:14:22 +00:00
|
|
|
find -type f | sed 's|^./||' > /tmp/after.list
|
2023-07-24 15:07:49 +00:00
|
|
|
|
|
|
|
awk 'FNR==NR {a[$0]++; next} !($0 in a)' /tmp/before.list /tmp/after.list > $LUNA_BASE/usr/share/pkgdb/$name.files
|
|
|
|
|
|
|
|
echo "Package $name version $version successfully installed!"
|