#!/bin/bash if [ -f /tmp/mirror ]; then echo "mirror system is already running" exit 0 fi touch /tmp/mirror #BUILD_NAME="R2D9" #BUILD_TITLE="${BUILD_NAME}-$(cat /usr/ports/releases/stable/metadata/build-version)" BUILD_TITLE="Crux 3.6" # Update system ports -u # make them look like updated echo "touch packages..." for package in /usr/ports/packages/*; do touch ${package}; done # make sure permissions are right echo "chown pkgmk:pkgmk -R /usr/ports" chown pkgmk:pkgmk -R /usr/ports echo "update system" prt-get depinst $(prt-get listinst | xargs prt-get quickdep) prt-get sysup prt-get update -fr $(revdep) # Create list of installed packages echo "creating list of installed..." rm -r /usr/ports/installed pkg_installed ### clean distribution files mkdir -p /usr/ports/archive/distfiles mv /usr/ports/distfiles/* /usr/ports/archive/distfiles ### clean packages files mkdir -p /usr/ports/archive/packages mv /usr/ports/packages/* /usr/ports/archive/packages ### get sources and packages cd /usr/ports/installed for installed in *; do prt-get path $installed | while read -r line; do cd $line ##get source sudo -u pkgmk -g pkgmk pkgmk -do #make sure package exists current="${installed}#$(prt-get current ${installed}).pkg.tar.gz" echo "checking $current ..." cp /usr/ports/archive/packages/${current} /usr/ports/packages/ #prt-get update $installed done done # Create repository echo "creating repository" cd /usr/ports/packages pkg-repgen # Create mirror page echo "creating mirror index page" portspage --title=${BUILD_TITLE} /usr/ports/installed > /usr/ports/installed/index.html sed -i "s@usr\/ports\/installed@mirror/installed@g" /usr/ports/installed/index.html echo "setting permissions /usr/ports" chown pkgmk:pkgmk -R /usr/ports # Remove temporary file rm /tmp/mirror