1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/bin/bash

print_usage() {
echo "Syntax:      $0 firstrun/newpackage/editpackage"
echo 
echo "Usage Examples:-"
echo 
echo "firstrun:    $0 firstrun InstallerSourceXML \"Repository Full Name\""
echo "update:      $0 update"
echo "newpackage:  $0 newpackage packagename.zip Category Version \"Description\""
echo "editpackage: $0 editpackage packagename MaintainerName MaintainerEmail Category Version \"Description\""
}

### Vars ######
repofile=installer.xml
repodesc="ModMyiFone"
### END #######

### 1. Unzipping packages and creating metadata ##############################################
steps1-3_run() {

echo 1/5: Synchronizing with Installer Repository.....
cd /home/mmi/cydiastuff/zips
rm -f ../scripts/installer.xml
cp /home/mmi/public_html/installer.xml ../scripts/installer.xml
cat < ../scripts/installer.xml | grep http | grep .zip|awk '{gsub("<string>","");gsub("</string>","");print}'| xargs wget -N

echo 2/5: Unzipping packages and creating metadata.....
mkdir -p ../unzipped/debs
cp ../scripts/*.py ../unzipped/debs/
cp ../scripts/*.xml ../unzipped/debs/
if [ ! -f ../unzipped/mpkgs ]; then
	cp ../scripts/mpkgs ../unzipped/
fi
for z in *.zip; do unzip -K -o -qq $z -d ../unzipped/debs/`basename $z .zip|tr A-Z a-z`/; done
cd ../unzipped/debs
mkdir -p ../../debug
python metadata.py $repofile > ../../debug/debug.txt

### 2. Preparing packages ########################
echo 3/5: Preparing packages....
rm -f *.py *.pyc *.xml *.sh
for x in *; do
	if [ -d ${x}/__MACOSX ]; then
		rm -rf ${x}/__MACOSX
	fi
	if [ -d ${x}/DEBIAN ]; then
		echo "" >> ${x}/DEBIAN/control
		chmod +x ${x}/DEBIAN/*
	fi
	if [ -e ${x}/test.txt ]; then
		rm -f ${x}/test.txt
	fi
done
find . -name '.DS_Store' -exec rm -rf {} \; -prune

### 3. Building packages and cleaning up ##############
echo 4/5: Building packages and cleaning up
for x in *; do dpkg -b $x 1>/dev/null 2>/dev/null; done
cp -pR /home/mmi/edebs/* ./
ls -d * | grep -v .deb | xargs rm -rf
cd ..
}

### 4. Creating Repository Info Files ##########################################################################################################
step4b_run(){
echo 5/5: Creating Repository Info Files
chmod +x mpkgs
./mpkgs debs indices/override | awk '{gsub("Section: Network\n","Section: Networking\n");print}' > dists/stable/main/binary-darwin-arm/Packages2
cp dists/stable/main/binary-darwin-arm/Packages2 dists/stable/main/binary-darwin-arm/Packages 
gzip -9 -f dists/stable/main/binary-darwin-arm/Packages
mv dists/stable/main/binary-darwin-arm/Packages2 dists/stable/main/binary-darwin-arm/Packages
mkdir -p dists/stable/main/binary-iphoneos-arm/
rm -f dists/stable/main/binary-iphoneos-arm/Packages*
touch dists/stable/main/binary-iphoneos-arm/Packages
cp dists/stable/main/binary-iphoneos-arm/Packages dists/stable/main/binary-iphoneos-arm/Packages2
gzip dists/stable/main/binary-iphoneos-arm/Packages
mv dists/stable/main/binary-iphoneos-arm/Packages2 dists/stable/main/binary-iphoneos-arm/Packages
}

update_repo() {
steps1-3_run
rm -f dists/stable/main/binary-darwin-arm/Packages*
step4b_run
cat<<END<<END>dists/stable/Release
`cat < dists/stable/Release | grep -v Packages`
ENDEND
cd dists/stable
for file in main/binary-darwin-arm/{Packages,Packages.gz}; do echo " $(md5sum "${file}" | cut -d ' ' -f 1) $(du -b "${file}" | cut -d $'\t' -f 1) ${file}"; done >>Release
for file in main/binary-iphoneos-arm/{Packages,Packages.gz}; do echo " $(md5sum "${file}" | cut -d ' ' -f 1) $(du -b "${file}" | cut -d $'\t' -f 1) ${file}"; done >>Release
rm -f Release.gpg
cd ../../
gpg -abs -o dists/stable/Release.gpg dists/stable/Release
echo Exit Status: $?
cp -pR ./* /home/mmi/public_html/repo/
exit
}

first_run() {
cd /home/mmi/cydiastuff/zips
rm -f *.done
rm -rf ../unzipped

steps1-3_run

mkdir -p indices
touch indices/override
mkdir -p dists/stable/main/binary-darwin-arm

step4b_run

cat<<END<<END>dists/stable/Release
Origin: stable
Label: ${repodesc}
Suite: stable
Version: 1.0
Codename: stable
Architectures: darwin-arm
Components: main
Description: ${repodesc}
MD5Sum:
ENDEND
cd dists/stable
for file in main/binary-darwin-arm/{Packages,Packages.gz}; do echo " $(md5sum "${file}" | cut -d ' ' -f 1) $(du -b "${file}" | cut -d $'\t' -f 1) ${file}"; done >>Release
cd ../../
gpg -abs -o dists/stable/Release.gpg dists/stable/Release
mkdir -p conf
cat<<END<<END>conf/distributions
Origin: stable
Label: ${repodesc}
Suite: stable
Codename: stable
Architectures: darwin-arm
Components: main
Description: ${repodesc}
ENDEND
echo Exit Status: $?
rm -rf /home/mmi/public_html/repo/
mkdir -p /home/mmi/public_html/repo/
cp -pR ./* /home/mmi/public_html/repo/
exit
}

### Debicizer option selection ##
case $1 in
	--usage ) print_usage ;;
	run ) first_run ;;
	up ) update_repo ;;
	newpackage ) new_package ;;
	editpackage ) edit_package ;;
	"" ) print_usage ;;
esac
### END #########################

### Not implemented ####################
corrupted_metadata(){
for c in *; do rm -f ${c}/DEBIAN/*; done
}
### END ################################