| 1 | #!/bin/bash |
|---|
| 2 | |
|---|
| 3 | OPENMOKO_OVERLAY="/usr/portage/local/layman/openmoko/trunk/openmoko-target/" |
|---|
| 4 | MY_PWD=${PWD} |
|---|
| 5 | |
|---|
| 6 | if [[ -d squash ]] |
|---|
| 7 | then |
|---|
| 8 | echo "Deleting dir 'squash'..." |
|---|
| 9 | rm -rf squash || exit 1 |
|---|
| 10 | echo " done." |
|---|
| 11 | fi |
|---|
| 12 | if [[ -e portage.squashfs ]] |
|---|
| 13 | then |
|---|
| 14 | echo "Deleting old 'portage.squashfs'..." |
|---|
| 15 | rm -rf portage.squashfs || exit 1 |
|---|
| 16 | echo " done." |
|---|
| 17 | fi |
|---|
| 18 | |
|---|
| 19 | echo "Creating dir 'squash'..." |
|---|
| 20 | mkdir squash || exit 1 |
|---|
| 21 | echo " done." |
|---|
| 22 | |
|---|
| 23 | echo "Getting and extracting 'portage-latest.tar.bz2'..." |
|---|
| 24 | wget -O- \ |
|---|
| 25 | --progress=bar \ |
|---|
| 26 | http://de-mirror.org/distro/gentoo/snapshots/portage-latest.tar.lzma \ |
|---|
| 27 | | unlzma -c \ |
|---|
| 28 | | tar xp -C squash \ |
|---|
| 29 | || exit 1 |
|---|
| 30 | echo " done." |
|---|
| 31 | |
|---|
| 32 | echo "Preparing Openmoko Overlay..." |
|---|
| 33 | mkdir "${MY_PWD}/squash/tmpOM" |
|---|
| 34 | (cd ${OPENMOKO_OVERLAY} && tar cf - .) | (cd ${MY_PWD}/squash/tmpOM/ && tar xpf -) || exit 1 |
|---|
| 35 | echo " done." |
|---|
| 36 | echo "Sorting categories ..." |
|---|
| 37 | cat "${MY_PWD}/squash/portage/profiles/categories" >> "${MY_PWD}/squash/tmpOM/profiles/categories" |
|---|
| 38 | sort -u -o "${MY_PWD}/squash/tmpOM/profiles/categories" "${MY_PWD}/squash/tmpOM/profiles/categories" |
|---|
| 39 | echo " done." |
|---|
| 40 | echo "Handling further difficult files ..." |
|---|
| 41 | for i in repo_name embedded arch.list |
|---|
| 42 | do |
|---|
| 43 | cp -r "${MY_PWD}/squash/portage/profiles/${i}" "${MY_PWD}/squash/tmpOM/profiles/" |
|---|
| 44 | done |
|---|
| 45 | echo " done." |
|---|
| 46 | echo "Injecting fixed Overlay ..." |
|---|
| 47 | (cd ${MY_PWD}/squash/tmpOM/ && tar cf - .) | (cd ${MY_PWD}/squash/portage/ && tar xpf -) || exit 1 |
|---|
| 48 | echo " done." |
|---|
| 49 | echo "Cleaning up .svn remnants..." |
|---|
| 50 | for i in `find "${MY_PWD}/squash/portage/" -name .svn` |
|---|
| 51 | do |
|---|
| 52 | rm -rf ${i} |
|---|
| 53 | done |
|---|
| 54 | echo " done." |
|---|
| 55 | echo "Redigesting portage tree..." |
|---|
| 56 | for i in $(ls ${OPENMOKO_OVERLAY}) |
|---|
| 57 | do |
|---|
| 58 | if [[ -d ${OPENMOKO_OVERLAY}/${i} ]] |
|---|
| 59 | then for j in $(ls ${OPENMOKO_OVERLAY}/${i}) |
|---|
| 60 | do if [[ -e ${OPENMOKO_OVERLAY}/${i}/${j}/Manifest ]] |
|---|
| 61 | then |
|---|
| 62 | dir="squash/portage/${i}/${j}/" |
|---|
| 63 | ebuild ${dir}/$(ls ${dir} | grep ebuild$ | tail -n1) digest |
|---|
| 64 | fi |
|---|
| 65 | done |
|---|
| 66 | fi |
|---|
| 67 | done |
|---|
| 68 | echo " done." |
|---|
| 69 | |
|---|
| 70 | cd ${MY_PWD}/squash |
|---|
| 71 | chown -R portage:portage * |
|---|
| 72 | |
|---|
| 73 | echo "Creating squashfs..." |
|---|
| 74 | mksquashfs portage ../portage.squashfs || exit 1 |
|---|
| 75 | echo " done." |
|---|
| 76 | |
|---|
| 77 | chmod a+r,a-wx ../portage.squashfs |
|---|
| 78 | |
|---|
| 79 | echo "Done." |
|---|