| 1 | #!/bin/bash |
|---|
| 2 | set -e |
|---|
| 3 | shopt -s extglob nullglob |
|---|
| 4 | |
|---|
| 5 | PKG_BASE=$(dirname "$(realpath "$0")") |
|---|
| 6 | cd "${PKG_BASE}" |
|---|
| 7 | PKG_RVSN=282 |
|---|
| 8 | |
|---|
| 9 | PKG_REPO=/dat/web/beta.apt.saurik.com |
|---|
| 10 | |
|---|
| 11 | for PKG_ARCH in "${PKG_BASE}/arch"/*; do |
|---|
| 12 | PKG_ARCH=$(basename "${PKG_ARCH}") |
|---|
| 13 | echo "scanning ${PKG_ARCH}" |
|---|
| 14 | |
|---|
| 15 | PKG_DCBF=${PKG_REPO}/dists/tangelo/main/binary-${PKG_ARCH} |
|---|
| 16 | mkdir -p "${PKG_DCBF}" |
|---|
| 17 | PKG_PKGS=${PKG_DCBF}/Packages |
|---|
| 18 | |
|---|
| 19 | rm -rf "${PKG_BASE}/link" |
|---|
| 20 | mkdir "${PKG_BASE}/link" |
|---|
| 21 | |
|---|
| 22 | for package in "${PKG_BASE}/data"/!(*_); do |
|---|
| 23 | PKG_NAME=$(basename "${package}") |
|---|
| 24 | |
|---|
| 25 | # XXX: add to above filter |
|---|
| 26 | if [[ ${PKG_NAME} == _* ]]; then |
|---|
| 27 | continue |
|---|
| 28 | fi |
|---|
| 29 | |
|---|
| 30 | PKG_DATA="${PKG_BASE}/data/${PKG_NAME}" |
|---|
| 31 | PKG_STAT="${PKG_BASE}/stat/${PKG_ARCH}/${PKG_NAME}" |
|---|
| 32 | PKG_PRIO=$(cat "${PKG_DATA}/_metadata/priority") |
|---|
| 33 | |
|---|
| 34 | if [[ -e ${PKG_STAT}/fail ]]; then |
|---|
| 35 | continue |
|---|
| 36 | fi |
|---|
| 37 | |
|---|
| 38 | echo "${PKG_NAME}" "${PKG_PRIO#+}" "$(cat "${PKG_DATA}/_metadata/section")" |
|---|
| 39 | |
|---|
| 40 | PKG_FILE=${PKG_BASE}/stat/${PKG_ARCH}/${PKG_NAME}/dest-ver |
|---|
| 41 | if [[ -e ${PKG_FILE} ]]; then |
|---|
| 42 | PKG_REAL=${PKG_BASE}/stat/${PKG_ARCH}/${PKG_NAME}/real-ver |
|---|
| 43 | if [[ -e ${PKG_REAL} ]]; then |
|---|
| 44 | PKG_RVER=$(cat "${PKG_REAL}") |
|---|
| 45 | else |
|---|
| 46 | PKG_RVER=$(cat "${PKG_STAT}/data-ver")-$(cat "${PKG_FILE}") |
|---|
| 47 | fi |
|---|
| 48 | |
|---|
| 49 | PKG_FILE=${PKG_BASE}/debs/${PKG_NAME}_${PKG_RVER}_${PKG_ARCH}.deb |
|---|
| 50 | if [[ -e ${PKG_FILE} && ! -e "${PKG_STAT}/exclude" ]]; then |
|---|
| 51 | ln -s "${PKG_FILE}" "${PKG_BASE}/link" |
|---|
| 52 | echo "${PKG_FILE}" |
|---|
| 53 | fi |
|---|
| 54 | fi |
|---|
| 55 | done >"${PKG_BASE}/overrides.txt" |
|---|
| 56 | |
|---|
| 57 | for deb in "${PKG_BASE}/xtra/${PKG_ARCH}"/*.deb; do |
|---|
| 58 | ln -s "$(readlink -f "${deb}")" "${PKG_BASE}/link" |
|---|
| 59 | done |
|---|
| 60 | |
|---|
| 61 | dpkg-scanpackages -m link "${PKG_BASE}/overrides.txt" | sed -e 's/: link\//: debs\//' | while IFS= read -r line; do |
|---|
| 62 | if [[ ${line} == '' ]]; then |
|---|
| 63 | PKG_TAGS=$(cat "${PKG_BASE}/tags/${PKG_NAME}" 2>/dev/null || true) |
|---|
| 64 | if [[ -z ${PKG_TAGS} ]]; then |
|---|
| 65 | PKG_TAGS=$(cat "${PKG_BASE}/data/${PKG_NAME}/_metadata/tags" 2>/dev/null || true) |
|---|
| 66 | fi |
|---|
| 67 | PKG_ROLE="${PKG_BASE}/data/${PKG_NAME}/_metadata/role" |
|---|
| 68 | if [[ -n ${PKG_TAGS} || -e ${PKG_ROLE} ]]; then |
|---|
| 69 | echo -n "Tag: " |
|---|
| 70 | if [[ -n ${PKG_TAGS} ]]; then |
|---|
| 71 | echo -n "${PKG_TAGS}" |
|---|
| 72 | fi |
|---|
| 73 | if [[ -n ${PKG_TAGS} && -e ${PKG_ROLE} ]]; then |
|---|
| 74 | echo -n ", " |
|---|
| 75 | fi |
|---|
| 76 | if [[ -e ${PKG_ROLE} ]]; then |
|---|
| 77 | echo -n "role::$(cat "${PKG_ROLE}")" |
|---|
| 78 | fi |
|---|
| 79 | echo |
|---|
| 80 | fi |
|---|
| 81 | elif [[ ${line} == Package:* ]]; then |
|---|
| 82 | PKG_NAME=${line#Package: } |
|---|
| 83 | fi |
|---|
| 84 | |
|---|
| 85 | echo "${line}" |
|---|
| 86 | done >"${PKG_PKGS}" |
|---|
| 87 | |
|---|
| 88 | if [[ ${PKG_ARCH} == "iphoneos-arm" ]]; then |
|---|
| 89 | dpkg-scanpackages paid >>"${PKG_PKGS}" |
|---|
| 90 | fi |
|---|
| 91 | |
|---|
| 92 | rm -f "${PKG_BASE}/overrides.txt" |
|---|
| 93 | done |
|---|
| 94 | |
|---|
| 95 | for PKG_ARCH in "${PKG_BASE}/arch"/*; do |
|---|
| 96 | PKG_ARCH=$(basename "${PKG_ARCH}") |
|---|
| 97 | PKG_PKGS=${PKG_REPO}/dists/tangelo/main/binary-${PKG_ARCH}/Packages |
|---|
| 98 | bzip2 -c "${PKG_PKGS}" >"${PKG_PKGS}.bz2" |
|---|
| 99 | done |
|---|
| 100 | |
|---|
| 101 | cd "${PKG_REPO}/dists/tangelo" |
|---|
| 102 | |
|---|
| 103 | { |
|---|
| 104 | cat <<EOF |
|---|
| 105 | Origin: Telesphoreo Tangelo |
|---|
| 106 | Label: Cydia/Telesphoreo |
|---|
| 107 | Suite: stable |
|---|
| 108 | Version: 1.0r${PKG_RVSN} |
|---|
| 109 | Codename: tangelo-3.7 |
|---|
| 110 | Architectures:$(for PKG_ARCH in "${PKG_BASE}/arch"/*; do echo -n " $(basename "${PKG_ARCH}")"; done) |
|---|
| 111 | Components: main |
|---|
| 112 | Description: Distribution of Unix Software for iPhoneOS 3 |
|---|
| 113 | Support: http://cydia.saurik.com/support/* |
|---|
| 114 | MD5Sum: |
|---|
| 115 | EOF |
|---|
| 116 | |
|---|
| 117 | find */* -type f | while read -r line; do |
|---|
| 118 | echo " $(md5sum "${line}" | cut -d ' ' -f 1) $(du -b "${line}" | cut -d $'\t' -f 1) ${line}" |
|---|
| 119 | done |
|---|
| 120 | |
|---|
| 121 | } >"Release" |
|---|
| 122 | |
|---|
| 123 | rm -f Release.gpg |
|---|
| 124 | gpg -abs -o Release.gpg Release |
|---|