summaryrefslogtreecommitdiffstats
path: root/postsync.d/regen-overlays
diff options
context:
space:
mode:
Diffstat (limited to 'postsync.d/regen-overlays')
-rwxr-xr-xpostsync.d/regen-overlays62
1 files changed, 62 insertions, 0 deletions
diff --git a/postsync.d/regen-overlays b/postsync.d/regen-overlays
new file mode 100755
index 0000000..4788e85
--- /dev/null
+++ b/postsync.d/regen-overlays
@@ -0,0 +1,62 @@
+#!/bin/bash
+OVERLAY_CONFIG_DIR="$(update-eix --print EIXCFGDIR)/overlays"
+
+# error
+eecho() {
+ case "x${NOCOLOR}" in
+ x[y,Y][e,E][s,S]|x-[t,T][r,R][u,U][e,E]|x)
+ echo -ne '\e[1;31m * \e[0m';;
+ x*)
+ echo -n " * ";;
+ esac
+
+ echo "$*"
+}
+
+# warning
+wecho() {
+ case "x${NOCOLOR}" in
+ x[y,Y][e,E][s,S]|x-[t,T][r,R][u,U][e,E]|x)
+ echo -ne '\e[1;33m * \e[0m';;
+ x*)
+ echo -n " * ";;
+ esac
+
+ echo "$*"
+}
+
+# info
+iecho() {
+ echo ">>> $*"
+}
+
+iecho "Regenerating overlay config ..."
+
+if [ ! -d "${OVERLAY_CONFIG_DIR}" ] ; then
+ eecho "${OVERLAY_CONFIG_DIR} does not exists!"
+ return 1
+fi
+
+if [ ! -f "${OVERLAY_CONFIG_DIR}/make.conf" ] ; then
+ wecho "${OVERLAY_CONFIG_DIR}/make.conf does not exists, creating..."
+ touch "${OVERLAY_CONFIG_DIR}/make.conf"
+fi
+
+echo "PORTDIR_OVERLAY=\"\${PORTDIR_OVERLAY}" > "${OVERLAY_CONFIG_DIR}/make.conf"
+
+for overlay_config in $(ls ${OVERLAY_CONFIG_DIR}); do
+ unset LOCATION
+
+ if [[ "${overlay_config}" != "make.conf" ]] ; then
+ source ${OVERLAY_CONFIG_DIR}/${overlay_config}
+ if [[ -n "${LOCATION}" ]]; then
+ echo " ${LOCATION}" >> "${OVERLAY_CONFIG_DIR}/make.conf"
+ fi
+ fi
+done
+
+echo "\"" >> "${OVERLAY_CONFIG_DIR}/make.conf"
+
+if [[ -z "$(grep "^[ \t]*source ${OVERLAY_CONFIG_DIR}/make.conf" /etc/make.conf)" ]] ; then
+ wecho "\"source ${OVERLAY_CONFIG_DIR}/make.conf\" not found in /etc/make.conf"
+fi