Compare commits
1
Commits
06bd01807a
...
13aea1c654
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13aea1c654 |
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# Update and sign Eendoe APT Repository
|
||||
# ==============================================================================
|
||||
set -euo pipefail
|
||||
|
||||
REPO_DIR="/sites/repository/binaries"
|
||||
DISTS_DIR="${REPO_DIR}/dists/stable"
|
||||
MAIN_DIR="${DISTS_DIR}/main/binary-amd64"
|
||||
KEY_ID="56499F920639F571"
|
||||
|
||||
echo "=== Updating Eendoe APT Repository ==="
|
||||
|
||||
cd "$REPO_DIR"
|
||||
mkdir -p "$MAIN_DIR"
|
||||
|
||||
echo "Scanning packages in pool/main..."
|
||||
dpkg-scanpackages --multiversion pool/main /dev/null > "$MAIN_DIR/Packages"
|
||||
|
||||
echo "Compressing Packages..."
|
||||
gzip -9c "$MAIN_DIR/Packages" > "$MAIN_DIR/Packages.gz"
|
||||
bzip2 -9c "$MAIN_DIR/Packages" > "$MAIN_DIR/Packages.bz2"
|
||||
|
||||
echo "Generating Release file..."
|
||||
cd "$DISTS_DIR"
|
||||
|
||||
cat << EOF > Release
|
||||
Origin: Eendoe
|
||||
Label: Eendoe Repository
|
||||
Suite: stable
|
||||
Codename: stable
|
||||
Date: $(date -Ru)
|
||||
Architectures: amd64 all
|
||||
Components: main
|
||||
Description: Eendoe Private APT Package Repository
|
||||
EOF
|
||||
|
||||
add_checksums() {
|
||||
local algo="$1"
|
||||
local cmd="$2"
|
||||
echo "${algo}:" >> Release
|
||||
for file in main/binary-amd64/Packages main/binary-amd64/Packages.gz main/binary-amd64/Packages.bz2; do
|
||||
if [ -f "$file" ]; then
|
||||
local size
|
||||
size=$(stat -c%s "$file")
|
||||
local hash
|
||||
hash=$($cmd "$file" | awk '{print $1}')
|
||||
printf " %s %16d %s\n" "$hash" "$size" "$file" >> Release
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
add_checksums "MD5Sum" "md5sum"
|
||||
add_checksums "SHA1" "sha1sum"
|
||||
add_checksums "SHA256" "sha256sum"
|
||||
|
||||
echo "Signing Release with GPG key $KEY_ID..."
|
||||
rm -f Release.gpg InRelease
|
||||
gpg --batch --yes --default-key "$KEY_ID" --armor --detach-sign -o Release.gpg Release
|
||||
gpg --batch --yes --default-key "$KEY_ID" --clearsign -o InRelease Release
|
||||
|
||||
echo "=== Repository update & signing complete ==="
|
||||
Reference in New Issue
Block a user