Last active
February 25, 2021 06:42
-
-
Save myui/81ea4451ac78088a435bcc41c67b350d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# based on https://github.com/z3r0n3t/pkget | |
# copyright 2020 enp0s10 | |
# Licensed under GNU GPLv3 | |
echo "starting install..." | |
USER=`whoami` | |
echo "curent user is $USER" | |
set -e | |
BUILD_DIR=/home/$USER | |
CACHE_DIR=/tmp | |
LP_DIR=$(cd $(dirname "$0"); cd ..; pwd) | |
function error() { | |
echo " ! $*" >&2 | |
exit 1 | |
} | |
function topic() { | |
echo ">>> $*" | |
} | |
function indent() { | |
c='s/^/ /' | |
case $(uname) in | |
Darwin) sed -l "$c";; | |
*) sed -u "$c";; | |
esac | |
} | |
APT_CACHE_DIR=$CACHE_DIR/apt/cache | |
APT_STATE_DIR=$CACHE_DIR/apt/state | |
APT_SOURCELIST_DIR=$CACHE_DIR/apt/sources # you can your place custom sources.list here | |
APT_SOURCES=$APT_SOURCELIST_DIR/sources.list | |
APT_OPTIONS="-o debug::nolocking=true -o dir::cache=$APT_CACHE_DIR -o dir::state=$APT_STATE_DIR" | |
APT_OPTIONS="$APT_OPTIONS -o dir::etc::sourcelist=$APT_SOURCES" | |
rm -rf $APT_CACHE | |
mkdir -p $APT_CACHE_DIR/archives/partial | |
mkdir -p $APT_STATE_DIR/lists/partial | |
mkdir -p $APT_SOURCELIST_DIR | |
cat "/etc/apt/sources.list" > $APT_SOURCES | |
topic "Updating apt caches" | |
apt-get $APT_OPTIONS update | indent | |
for PACKAGE in $*; do | |
if [[ $PACKAGE == *deb ]]; then | |
PACKAGE_NAME=$(basename $PACKAGE .deb) | |
PACKAGE_FILE=$APT_CACHE_DIR/archives/$PACKAGE_NAME.deb | |
topic "Fetching $PACKAGE" | |
curl -s -L -z "$PACKAGE_FILE" -o "$PACKAGE_FILE" "$PACKAGE" 2>&1 | indent | |
else | |
topic "Fetching .debs for $PACKAGE" | |
apt-get $APT_OPTIONS -y --force-yes -d install --reinstall $PACKAGE | indent | |
fi | |
done | |
mkdir -p $BUILD_DIR/.apt | |
for DEB in $(ls -1 $APT_CACHE_DIR/archives/*.deb); do | |
topic "Installing $(basename $DEB)" | |
dpkg -x $DEB $BUILD_DIR/.apt/ | |
done | |
topic "Rewrite package-config files" | |
find $BUILD_DIR/.apt -type f -ipath '*/pkgconfig/*.pc' | xargs --no-run-if-empty -n 1 sed -i -e 's!^prefix=\(.*\)$!prefix='$BUILD_DIR'/.apt\1!g' | |
# start logging | |
clear | |
echo "building logfile" | |
echo "-------START NEW INSTALL-----" >> pget.log | |
echo "install date:" >> pget.log | |
date >> pget.log | |
echo "system:" | |
uname -a >> pget.log | |
echo "user:" | |
echo "$USER" >> pget.log | |
echo "user home:" | |
echo "$HOME" >> pget.log | |
echo "install details" >> pget.log | |
echo "package:" >> pget.log | |
echo "$PACKAGE" >> pget.log | |
echo "build dir:" >> pget.log | |
echo "$BUILD_DIR" >> pget.log | |
echo "cahche_dir:" >> pget.log | |
echo "$APT_CACHE_DIR" >> pget.log | |
echo "source list dir:" >> pget.log | |
echo "$APT_SOURCELIST_DIR" >> pget.log | |
echo "-------END NEW INSTALL------" >> pget.log | |
clear | |
echo "install details saved to logfile" | |
echo "TIP: to see the log file type cat pget.log" | |
echo " All done :-)" |
Author
myui
commented
Feb 25, 2021
•
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment