summaryrefslogtreecommitdiff
path: root/local/bin/xsync
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xlocal/bin/xsync24
1 files changed, 24 insertions, 0 deletions
diff --git a/local/bin/xsync b/local/bin/xsync
new file mode 100755
index 0000000..576b733
--- /dev/null
+++ b/local/bin/xsync
@@ -0,0 +1,24 @@
+#!/bin/sh
+# Binary for syncing xbps with a list
+#
+# HOWTO:
+# Make sure to install xtools and that there is a
+# repository.list, which should be initialized with xpkg -m > ~/repository.list
+#
+# Add whatever package you want to install, and run xsync to sync your
+# list of packages with the new list
+
+set -e
+
+xpkg -m | sort > /tmp/xsync-installed
+cat ~/repository.list | sort > /tmp/xsync-spec
+
+echo $INSTALLED
+
+comm /tmp/xsync-spec /tmp/xsync-installed -23 > /tmp/xsync-to-install
+comm /tmp/xsync-spec /tmp/xsync-installed -13 > /tmp/xsync-to-remove
+
+[ -s /tmp/xsync-to-remove ] && sudo xbps-remove $(cat /tmp/xsync-to-remove) || echo "Nothing to remove"
+
+[ -s /tmp/xsync-to-install ] && sudo xbps-install $(cat /tmp/xsync-to-install) || echo "Nothing to install"
+