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
; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
Profanity Python Plugins API
============================

The ``prof`` module describes functions that plugins may call to interact with Profanity.
The ``plugin`` module describes functions that plugins may define to be notified of various events in Profanity.

Contents:

.. toctree::
   :maxdepth: 2

   prof
   plugin
* :ref:`genindex`