root / trunk / construct.sh

Revision 647, 3.7 kB (checked in by saurik, 1 year ago)

jlanger failed to build my zsh.

  • Property svn:executable set to *
Line 
1#!/bin/bash
2set -e
3shopt -s extglob nullglob
4
5PKG_BASE=$(dirname "$(realpath "$0")")
6cd "${PKG_BASE}"
7PKG_RVSN=282
8
9PKG_REPO=/dat/web/beta.apt.saurik.com
10
11for 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"
93done
94
95for 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"
99done
100
101cd "${PKG_REPO}/dists/tangelo"
102
103{
104    cat <<EOF
105Origin: Telesphoreo Tangelo
106Label: Cydia/Telesphoreo
107Suite: stable
108Version: 1.0r${PKG_RVSN}
109Codename: tangelo-3.7
110Architectures:$(for PKG_ARCH in "${PKG_BASE}/arch"/*; do echo -n " $(basename "${PKG_ARCH}")"; done)
111Components: main
112Description: Distribution of Unix Software for iPhoneOS 3
113Support: http://cydia.saurik.com/support/*
114MD5Sum:
115EOF
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
123rm -f Release.gpg
124gpg -abs -o Release.gpg Release
Note: See TracBrowser for help on using the browser.