Update rebuild-feed_test.sh
This commit is contained in:
@@ -30,21 +30,18 @@ calculate_md5_and_size() {
|
|||||||
# Function to parse control file
|
# Function to parse control file
|
||||||
parse_control_file() {
|
parse_control_file() {
|
||||||
local control_file=$1
|
local control_file=$1
|
||||||
local fields=(Package Version Depends Architecture Maintainer Source Description Section Conflicts License)
|
|
||||||
declare -A control_data
|
declare -A control_data
|
||||||
|
|
||||||
while IFS=':' read -r key value; do
|
while IFS=':' read -r key value; do
|
||||||
key=$(echo "$key" | xargs)
|
key=$(echo "$key" | xargs)
|
||||||
value=$(echo "$value" | xargs)
|
value=$(echo "$value" | xargs)
|
||||||
if [[ " ${fields[*]} " == *" $key "* ]]; then
|
control_data["$key"]="$value"
|
||||||
control_data["$key"]="$value"
|
|
||||||
fi
|
|
||||||
done < "$control_file"
|
done < "$control_file"
|
||||||
|
|
||||||
echo "${control_data[@]}"
|
echo "${control_data[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Scan ipk-source directory and process packages
|
# Process each package directory in ipk-source
|
||||||
for pkg_dir in "$IPK_SOURCE_DIR"/*; do
|
for pkg_dir in "$IPK_SOURCE_DIR"/*; do
|
||||||
pkg_name=$(basename "$pkg_dir")
|
pkg_name=$(basename "$pkg_dir")
|
||||||
if [[ "$pkg_name" =~ _ ]]; then
|
if [[ "$pkg_name" =~ _ ]]; then
|
||||||
@@ -84,12 +81,19 @@ for pkg_dir in "$IPK_SOURCE_DIR"/*; do
|
|||||||
|
|
||||||
# Append new entry to Packages file
|
# Append new entry to Packages file
|
||||||
{
|
{
|
||||||
for key in "${!control_data[@]}"; do
|
echo "Package: ${control_data[Package]}"
|
||||||
echo "$key: ${control_data[$key]}"
|
echo "Version: ${control_data[Version]}"
|
||||||
done
|
echo "Depends: ${control_data[Depends]}"
|
||||||
|
echo "Architecture: ${control_data[Architecture]}"
|
||||||
|
echo "Maintainer: ${control_data[Maintainer]}"
|
||||||
echo "MD5Sum: $current_md5"
|
echo "MD5Sum: $current_md5"
|
||||||
echo "Size: $current_size"
|
echo "Size: $current_size"
|
||||||
echo "Filename: $ipk_file"
|
echo "Filename: $ipk_file"
|
||||||
|
echo "Source: ${control_data[Source]}"
|
||||||
|
echo "Description: ${control_data[Description]}"
|
||||||
|
[[ -n ${control_data[Section]} ]] && echo "Section: ${control_data[Section]}"
|
||||||
|
[[ -n ${control_data[Conflicts]} ]] && echo "Conflicts: ${control_data[Conflicts]}"
|
||||||
|
[[ -n ${control_data[License]} ]] && echo "License: ${control_data[License]}"
|
||||||
echo ""
|
echo ""
|
||||||
} >> "$PACKAGES"
|
} >> "$PACKAGES"
|
||||||
|
|
||||||
@@ -119,7 +123,7 @@ for pkg_dir in "$IPK_SOURCE_DIR"/*; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Remove packages not in ipk-source
|
# Remove orphaned packages
|
||||||
grep "^Package: " "$PACKAGES" | awk '{print $2}' | while read -r pkg_name; do
|
grep "^Package: " "$PACKAGES" | awk '{print $2}' | while read -r pkg_name; do
|
||||||
if [[ ! -d "$IPK_SOURCE_DIR/$pkg_name"* ]]; then
|
if [[ ! -d "$IPK_SOURCE_DIR/$pkg_name"* ]]; then
|
||||||
echo "Removing orphaned package $pkg_name from Packages file..." | tee -a "$LOGFILE"
|
echo "Removing orphaned package $pkg_name from Packages file..." | tee -a "$LOGFILE"
|
||||||
|
|||||||
Reference in New Issue
Block a user