Last active
December 18, 2015 19:49
-
-
Save rwarren/5835600 to your computer and use it in GitHub Desktop.
handy tinycore remastering script from coreplayer2 (see http://goo.gl/c6uQh). Takes the tedium out of it.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
. /etc/init.d/tc-functions | |
# Use this script to extract and re-package core.gz, core64.gz or corepure64.gz | |
# | |
# Note | |
# When repackaging a x86_64 core, use this script on same type system (core64 or corepure64) | |
# | |
# How to.. | |
# Copy this script and core*.gz to /tmp directory then | |
# Run script once to extract, after making necessary changes | |
# run script again to repackage, when done | |
# look in /tmp/core_package for new file | |
################################################################ | |
#cleanup, extract & repackage functions | |
f_cleanup() { | |
clear | |
$user rm -rf /tmp/core_extract | |
$user rm -rf /tmp/core_package | |
mycore=mycore | |
rm -f $mycore | |
} | |
f_extract() { | |
# prepare directories | |
mkdir -p /tmp/core_extract | |
mkdir -p /tmp/core_package | |
#extract core*.gz | |
cd /tmp/core_extract && zcat /tmp/$mycore | $user cpio -i -H newc -d | |
} | |
f_repack() { | |
cd /tmp/core_extract | |
#update modules list | |
$user depmod -a -b /tmp/core_extract `uname -r` | |
#re-package and compress new core*gz | |
$user find | $user cpio -o -H newc | $user gzip -2 > /tmp/core_package/$mycore | |
$user advdef -z4 /tmp/core_package/$mycore | |
} | |
################################################################ | |
##main script | |
trap 'f_cleanup ; trap 2 ; kill -2 $$' 1 2 3 13 15 | |
[ `/usr/bin/id -u` -ne 0 ] && user=sudo | |
if [ -e /tmp/core_package/core*.gz ]; then | |
echo "core.gz exists already," | |
read -n1 -p "Continue..? (y/n)" yn | |
case $yn in | |
[yY] ) f_cleanup;; | |
[nN] ) echo -e "\nexit.."; exit;; | |
esac | |
fi | |
#mycore=`$user find /tmp -maxdepth 1 -name "core*.gz" | sed 's/\/tmp\///g'` | |
mycore=`$user find /tmp -maxdepth 1 -name "core*.gz" | cut -d/ -f3` | |
while [ "$ep" != [ep] ]; do | |
set +x | |
clear | |
if [ -n "$mycore" ]; then | |
printf "\033[2;4HProcessing $mycore" | |
else | |
printf "\033[2;4H${YELLOW}core*gz file not found${NORMAL}\n" | |
exit | |
fi | |
printf "\033[4;0HRun script once to extract, then \nRun script again to re-package" | |
## create choice | |
printf "\033[7;4H${BLUE}Choose ${WHITE}(${MAGENTA}E${NORMAL}/${MAGENTA}e${WHITE})${BLUE} to Extract or" | |
printf "\033[8;4HChoose ${WHITE}(${MAGENTA}P${NORMAL}/${MAGENTA}p${WHITE})${BLUE} to re-Package\n\n" | |
##print divider - full screen/terminal width | |
width=`stty size | cut -d" " -f2` | |
printf '%*s' "$(( width ))" '' | tr ' ' ~ | |
printf "${NORMAL}\n\n" | |
read -s -n1 -p "" ep | |
set -x | |
case $ep in | |
[Ee] ) | |
find /tmp -name core_extract | xargs $user rm -rf ; | |
set +x | |
echo -e "${WHITE}Extracting $mycore${NORMAL}" | |
set -x | |
f_extract | |
set +x | |
echo -e "\n${BLUE} $mycore extract completed${NORMAL} - when ready, run this script again with P option to repack\n" | |
exit | |
;; | |
[Pp] ) | |
set +x | |
echo -e "${WHITE}RePacking $mycore please wait...${NORMAL}" | |
set -x | |
f_repack | |
set +x | |
echo -e "\n${BLUE} $mycore repackage complete${NORMAL}\n" | |
$user rm -rf /tmp/core_extract | |
exit | |
;; | |
* ) | |
echo -e "Key not supported, please try again" | |
;; | |
esac | |
done | |
exit |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment