about summary refs log tree commit diff stats
path: root/linux/scripts/mirror-system
diff options
context:
space:
mode:
Diffstat (limited to 'linux/scripts/mirror-system')
-rwxr-xr-xlinux/scripts/mirror-system73
1 files changed, 73 insertions, 0 deletions
diff --git a/linux/scripts/mirror-system b/linux/scripts/mirror-system
new file mode 100755
index 0000000..73a5473
--- /dev/null
+++ b/linux/scripts/mirror-system
@@ -0,0 +1,73 @@
+#!/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