mirror of
https://github.com/EnumeratedDev/bpm-utils.git
synced 2026-09-16 02:56:11 +00:00
Added split-package functionality and the create-repository-data script for unpac repository creation
This commit is contained in:
Executable
+63
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_PATH=$(realpath "$0")
|
||||
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
|
||||
|
||||
DEEP=false
|
||||
PKGS=()
|
||||
|
||||
while getopts "d" flag; do
|
||||
case "$flag" in
|
||||
d) DEEP=true
|
||||
shopt -s globstar;;
|
||||
*) echo "Unknown flag ${flag}"
|
||||
exit 2;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "${@:$OPTIND:1}" ]; then
|
||||
echo "You have not specified a repository"
|
||||
exit 1
|
||||
fi
|
||||
if ! [ -d "${@:$OPTIND:1}" ]; then
|
||||
echo "The given path is not a directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if realpath "${@:$OPTIND:1}" &> /dev/null; then
|
||||
REPO=$(realpath "${@:$OPTIND:1}")
|
||||
fi
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
if ! $DEEP; then
|
||||
for arch in "$REPO"/*/; do
|
||||
for pkg in "$arch"/*.bpm; do
|
||||
info=$(tar -xf "$pkg" pkg.info -O)
|
||||
package=$(echo "$info" | grep 'name: ' | awk '{print $2}')
|
||||
if [[ ${PKGS[@]} =~ "$package" ]]; then
|
||||
echo "The following package was found in more than 1 package archives: ${package}"
|
||||
fi
|
||||
PKGS+=("$package")
|
||||
file="$(realpath -s --relative-to="$REPO" "$pkg")"
|
||||
info+=$'\n'"file: ${file}"
|
||||
info+=$'\n---'
|
||||
echo "$info"
|
||||
done
|
||||
done
|
||||
else
|
||||
for arch in "$REPO"/*/; do
|
||||
for pkg in "$arch"/**/*.bpm; do
|
||||
info=$(tar -xf "$pkg" pkg.info -O)
|
||||
package=$(echo "$info" | grep 'name: ' | awk '{print $2}')
|
||||
if [[ ${PKGS[@]} =~ "$package" ]]; then
|
||||
echo "The following package was found in more than 1 package archives: ${package}"
|
||||
fi
|
||||
PKGS+=("$package")
|
||||
file="$(realpath -s --relative-to="$REPO" "$pkg")"
|
||||
info+=$'\n'"file: ${file}"
|
||||
info+=$'\n---'
|
||||
echo "$info"
|
||||
done
|
||||
done
|
||||
fi
|
||||
Reference in New Issue
Block a user