test enchants 2
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eE -o pipefail
|
||||
exec > >(tee -i /tmp/lif.log) 2>&1
|
||||
. initrd/functions
|
||||
set -eET -o pipefail
|
||||
exec > >(tee -i /tmp/llf.log) 2>&1
|
||||
cd "$(dirname $(readlink -f ${0}))"
|
||||
cp -fv config .config
|
||||
cp -f $([ ${V} ]&&echo ${V}) config .config
|
||||
for i in mksquashfs cpio gzip sed grep xorriso tar find file; do
|
||||
if [ ! -x "$(command -v ${i})" ]; then
|
||||
case ${i} in
|
||||
@@ -18,18 +19,21 @@ for i in mksquashfs cpio gzip sed grep xorriso tar find file; do
|
||||
done
|
||||
main()
|
||||
{
|
||||
local top DATA INITRD ret tmpRoot utc v
|
||||
local DATA ret tmpRoot utc v krnV
|
||||
echo "KERNEL=\"${kernel}}\"" >>.config
|
||||
echo "LMK=\"/lib/modules/$(file -bL ${kernel} | grep -o 'version .*' | cut -d' ' -f2)\"" >>.config
|
||||
top="$(pwd)"
|
||||
echo "LMK=\"/lib/modules/\"" >>.config
|
||||
krnV="$(file -bL ${kernel} | grep -o 'version .*' | cut -d' ' -f2)"
|
||||
top="${PWD}"
|
||||
INITRAMFS="${workTmpDir}/initRd"
|
||||
DATA="${workTmpDir}/isoImage"
|
||||
INITRD="$(initrd/create)"
|
||||
env DATA="${DATA}" INITRAMFS="${INITRAMFS}" V="${V}" top="${top}" initrd/create
|
||||
ret="${?}"
|
||||
tmpRoot="${workTmpDir}/tmpRoot"
|
||||
mkdir -pv ${DATA}/changes ${DATA}/os/modules
|
||||
rsync --force -aAP $(for i in $(awk '{print $2}' /proc/mounts) /tmp; do echo "--exclude=${i}/*"; done) / ${tmpRoot}
|
||||
chmod +x -Rv inc2sys
|
||||
cp -rvf inc2sys/* ${tmpRoot}
|
||||
mkdir -p $([ ${V} ]&&echo ${V}) ${DATA}/changes ${DATA}/os/modules
|
||||
mv -f $([ ${V} ]&&echo ${V}) ${INITRAMFS}.img ${DATA}/initrd.img
|
||||
rsync --force -aA $([ ${V} ]&&echo -P) $(for i in $(awk '{print $2}' /proc/mounts) /tmp; do echo "--exclude=${i}/*"; done) $(for i in /lib/modules/*; do [[ "${i}" =~ ${krnV} ]]&&continue||echo "--exclude=${i}";done) / ${tmpRoot}
|
||||
chmod +x -R $([ ${V} ]&&echo ${V}) inc2sys
|
||||
cp -rf $([ ${V} ]&&echo ${V}) inc2sys/* ${tmpRoot}
|
||||
mknod ${tmpRoot}/dev/console c 5 1
|
||||
mknod ${tmpRoot}/dev/null c 1 3
|
||||
mknod ${tmpRoot}/dev/ram0 b 1 0
|
||||
@@ -37,70 +41,61 @@ main()
|
||||
mknod ${tmpRoot}/dev/tty2 c 4 2
|
||||
mknod ${tmpRoot}/dev/tty3 c 4 3
|
||||
mknod ${tmpRoot}/dev/tty4 c 4 4
|
||||
for i in zstd xz lzma bzip2 gzip; do
|
||||
mksquashfs ${tmpRoot} ${DATA}/os/system.sfs -comp ${i} -noappend -limit 50
|
||||
for i in zstd xz lz4 lzo gzip; do
|
||||
mksquashfs ${tmpRoot} ${DATA}/os/system.sfs -comp $([ ${i} = lz4 ]&&echo echo "${i} -Xhc"||echo ${i}) $([ ${V} ]&&echo "-progress"||echo "-no-progress") -processors $(($(nproc)/6)) -noappend -limit 50
|
||||
[ -e ${DATA}/os/system.sfs ]&&break
|
||||
done
|
||||
mv -fv ${INITRD} ${DATA}/initrd.img
|
||||
cp -rvf bootfiles/* ${DATA}
|
||||
cp -rf $([ ${V} ]&&echo ${V}) bootfiles/* ${DATA}
|
||||
for i in ${DATA}/syslinux.cfg ${DATA}/boot/grub/grub.cfg; do
|
||||
sed -i -r "s/__DISTRO__/${DISTRO}/" ${i}
|
||||
done
|
||||
cp -f ${KERNEL} ${DATA}/vmlinuz
|
||||
cp -f $([ ${V} ]&&echo ${V}) ${KERNEL} ${DATA}/vmlinuz
|
||||
cd ${DATA}
|
||||
utc="$(date +%s)"
|
||||
v="$(git -C ${top} rev-parse HEAD 2>/dev/null|tr [:lower:] [:upper:]):$(git -C ${top} branch --show-current 2>/dev/null|tr [:lower:] [:upper:]):GIT"||v="INFINITY:PRIVATE:LOCAL"
|
||||
cat <<eot >.LlfMeta
|
||||
# Built using Linux-Live-Framework technology.
|
||||
LLF_VERSION="${v}"
|
||||
LLF_NAME="${DISTRO}"
|
||||
LLF_VERSION="${v}"
|
||||
LLF_UTC="${utc}"
|
||||
eot
|
||||
[[ ${ret} = 2 ]]&&echo "LLF_ELF_STATIC_INITRD=\"y\"" >>.LlfMeta||echo "LLF_ELF_STATIC_INITRD=\"n\"" >>.LlfMeta
|
||||
xorriso -as mkisofs -o /${DISTRO}-${utc}.iso -iso-level 3 -J -R -D -A ${DISTRO} -V ${DISTRO} -no-emul-boot -boot-info-table -boot-load-size 2 -b boot/grub/i386-pc/eltorito.img -c boot/grub/grub.cat -eltorito-alt-boot -e /efi.img -no-emul-boot .
|
||||
isohybrid --version >/dev/null 2>&1&&isohybrid -u /${DISTRO}-${utc}.iso
|
||||
return 0
|
||||
grub-mkrescue $([ ${V} ]&&echo ${V}) -o /${DISTRO}-${utc}.iso --compress=xz --product-name="${DISTRO}" --product-version="v=${v} t=${UTC}" .
|
||||
#xorriso -as mkisofs -o /${DISTRO}-${utc}.iso -iso-level 3 -J -R -D -A ${DISTRO} -V ${DISTRO} -no-emul-boot -boot-info-table -boot-load-size 2 -b isolinux.bin -c boot/grub/grub.cat -eltorito-alt-boot -e /efi.img -no-emul-boot .
|
||||
#isohybrid --version >/dev/null 2>&1&&isohybrid -u /${DISTRO}-${utc}.iso
|
||||
}
|
||||
chooseKernel()
|
||||
selectKernel()
|
||||
{
|
||||
local n=0 list
|
||||
mapfile -t list < <(find /boot -type f | egrep "bzImage|kernel|vmlinuz" 2>/dev/null | egrep -v "init|*.old")
|
||||
local checkbox_output list krn
|
||||
mapfile -t list < <(find /boot -type f|egrep"bzImage|kernel|vmlinuz" 2>/dev/null|egrep -v "init|$.old"|sort -n)
|
||||
if [ ${#list[@]} -gt 1 ]; then
|
||||
echo -e "Please choose your kernel to proceed:\nChoose number from ${n} to ${#list[@]}\n-----\n"
|
||||
for a in "${list[@]}"; do
|
||||
echo "[${n}] - ${a}"
|
||||
((n++))
|
||||
done
|
||||
echo "-----"
|
||||
read kernel
|
||||
kernel="/boot/${list[${kernel}]}"
|
||||
. ext/checkbox/checkbox.sh checkbox.sh --message="Please choose your kernel version to proceed:" --index --options="$(for i in "${list[@]}"; do basename "${i}";done;)"
|
||||
krn="/boot/${list[${checkbox_output}]}"
|
||||
else
|
||||
kernel="/boot/${list[0]}"
|
||||
krn="${list[0]}"
|
||||
fi
|
||||
kernel="${krn}"
|
||||
export kernel
|
||||
return 0
|
||||
}
|
||||
declare -g kernel DISTRO workTmpDir V setCompatFlags
|
||||
for i; do
|
||||
case ${i} in
|
||||
-i|--interactive) helper="true" ;;
|
||||
-k|--kernel) export kernel="${2}"; shift ;;
|
||||
-i|--interactive) helper=true ;;
|
||||
-k|--kernel) kernel="${2}"; shift ;;
|
||||
-d|--distro) DISTRO="${2}"; shift ;;
|
||||
-w|--workdir) workTmpDir="${2}"; shift ;;
|
||||
-D|--debug) set -x; export V="-v" ;;
|
||||
-C|--clean) clean="true" ;;
|
||||
-D|--debug) set -x; setCompatFlags+=" -x " ;;
|
||||
-n|--dry-run) set -n; setCompatFlags+=" -n " ;;
|
||||
-v|--verbose) set -v; V="-v" ;;
|
||||
-C|--clean) clean=true ;;
|
||||
--) shift; break ;;
|
||||
*) echo "Unknown option: ${i}"; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
trap '[[ ${clean} ]]&&echo "Cleaning up..."&&rm -rvf ${workTmpDir} /tmp/MlbInitRd{,.img};exit 1' 2 6 15
|
||||
export workTmpDir
|
||||
[[ -t 0 && ${helper} || ${helper} ]]&&if chooseKernel&&main; then true else; false; fi
|
||||
[[ ! ${helper} ]]&& {
|
||||
[[ ! -e ${kernel} ]]&&echo "[E]: Kernel not found: ${kernel}"&&false
|
||||
[[ -z ${DISTRO} ]]&&. .config&&echo "[W]: DISTRO not set. Using defaults: ${DISTRO}"||true
|
||||
[[ -z ${workTmpDir} ]]&&workTmpDir="$(mktemp -d /tmp/Llf_WorkDir_XXXXXXX)"&&echo "[W]: workTmpDir not set. Using defaults: ${workTmpDir}"&&true
|
||||
export workTmpDir
|
||||
export DISTRO
|
||||
mkdir -pv "${workTmpDir}"
|
||||
if main; then true; else false; fi
|
||||
}
|
||||
trap '. initrd/functions&&[[ ${clean} ]]&& { m A "\nCleaning-up";if rp "rm -rf ${workTmpDir}";then m i "Done!\n";else m w "Failed!\n";fi; };exit ${?}' HUP INT QUIT ILL TRAP ABRT TERM
|
||||
[[ -t 0 && ${helper} || ${helper} ]]&&if selectKernel&&main; then true else; false; fi
|
||||
[[ -e ${kernel} ]]||m e "Kernel not found: ${kernel}\n"&&false
|
||||
[[ -z ${DISTRO} ]]&&. .config&&m w "DISTRO not set. Using defaults: ${DISTRO}\n"||true
|
||||
workTmpDir="${workTmpDir:-$(mktemp -d /tmp/Llf_WorkDir_XXXXXXX)}"||true
|
||||
mkdir -p "${workTmpDir}"
|
||||
if main; then true; else false; fi
|
||||
Reference in New Issue
Block a user