summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrent s <r00t@square-r00t.net>2019-10-31 08:26:22 -0400
committerbrent s <r00t@square-r00t.net>2019-10-31 08:26:22 -0400
commit701949b8f75e87429923b42965649ce4b06c96f6 (patch)
tree51e190b4f9f12ef6415b3ac6bc04d87ec4ef8394
parent72298d7a4c7e0348ee3071b2413564526405437b (diff)
downloadOpTools-701949b8f75e87429923b42965649ce4b06c96f6.tar.xz
nice.
-rw-r--r--arch/grub.conf14
-rw-r--r--sysresccd/grub.conf12
-rwxr-xr-xsysresccd/relchk.py52
3 files changed, 78 insertions, 0 deletions
diff --git a/arch/grub.conf b/arch/grub.conf
new file mode 100644
index 0000000..abd0e0b
--- /dev/null
+++ b/arch/grub.conf
@@ -0,0 +1,14 @@
+#!/bin/sh
+exec tail -n +3 $0
+# Copy this file to /etc/grub.d/40_custom_arch with mode 0755 and run grub-mkconfig -o /boot/grub/grub.cfg
+
+# Arch ISO
+# https://wiki.archlinux.org/index.php/Multiboot_USB_drive#Arch_Linux_monthly_release
+menuentry 'Arch Install ISO' {
+ set isofile='/iso/arch.iso'
+ probe -u $root --set=imgdevuuid
+ set imgdevpath="/dev/disk/by-uuid/$imgdevuuid"
+ loopback loop $isofile
+ linux (loop)/arch/boot/x86_64/vmlinuz img_dev=$imgdevpath img_loop=$isofile earlymodules=loop
+ initrd (loop)/arch/boot/x86_64/archiso.img
+}
diff --git a/sysresccd/grub.conf b/sysresccd/grub.conf
new file mode 100644
index 0000000..e24b3f0
--- /dev/null
+++ b/sysresccd/grub.conf
@@ -0,0 +1,12 @@
+#!/bin/sh
+exec tail -n +3 $0
+# Copy this file to /etc/grub.d/40_custom_sysresccd with mode 0755 and run grub-mkconfig -o /boot/grub/grub.cfg
+
+menuentry 'System Rescue CD' {
+ set isofile='/iso/sysresccd.iso'
+ probe -u $root --set=imgdevuuid
+ set imgdevpath="/dev/disk/by-uuid/$imgdevuuid"
+ loopback loop $isofile
+ linux (loop)/sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd img_dev=$imgdevpath img_loop=$isofile earlymodules=loop
+ initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/amd_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img
+}
diff --git a/sysresccd/relchk.py b/sysresccd/relchk.py
new file mode 100755
index 0000000..a2b5b6f
--- /dev/null
+++ b/sysresccd/relchk.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python3
+
+# TODO: add config file support
+
+import os
+import re
+import shutil
+import subprocess
+##
+import requests
+from lxml import etree
+
+dest_dir = '/boot/iso'
+dest_file = 'sysresccd.iso'
+ver_file = '.sysresccd.info'
+feed_url = 'https://osdn.net/projects/systemrescuecd/storage/!rss'
+dl_base = ('https://osdn.net/frs/'
+ 'redir.php?m=constant&f='
+ '/storage/g/s/sy/systemrescuecd/releases/{version}/systemrescuecd-{version}.iso')
+old_version = None
+new_version = None
+grub_cfg = '/etc/grub.d/40_custom_sysresccd'
+
+
+def downloadISO(url, version):
+ dest = os.path.join(dest_dir, dest_file)
+ destver = os.path.join(dest_dir, ver_file)
+ with requests.get(url, stream = True) as url:
+ with open(dest, 'wb') as fh:
+ shutil.copyfileobj(url.raw, fh)
+ with open(destver, 'w') as fh:
+ fh.write(version.strip())
+ return()
+
+
+if os.path.isfile(os.path.join(dest_dir, ver_file)):
+ with open(os.path.join(dest_dir, ver_file), 'r') as f:
+ old_version = f.read().strip()
+r = requests.get(feed_url)
+if not r.ok:
+ raise RuntimeError('Could not fetch feed from {0}'.format(feed_url))
+feed = etree.fromstring(r.content)
+latest = feed.xpath('//item')[0]
+raw_version = os.path.basename(latest.find('title').text.strip())
+new_version = re.sub(r'^systemrescuecd-(x86-)?(?P<version>[0-9.]+).iso',
+ r'\g<version>',
+ raw_version)
+dl_url = dl_base.format(version = new_version)
+if old_version and old_version != new_version:
+ downloadISO(dl_url, new_version)
+elif not old_version:
+ downloadISO(dl_url, new_version)