Created
January 22, 2016 20:12
-
-
Save mortenjust/31c7080823846a90d3e0 to your computer and use it in GitHub Desktop.
install obb on all connected devices, requires adb+
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/bash | |
###################################################################### | |
# | |
# | |
# Obb+ | |
# fkhairzad@ | |
# | |
# Usage: | |
# | |
# [main] obb+ foo.obb | |
# [patch] obb+ -p foo.obb | |
# | |
###################################################################### | |
#Set Script Name variable | |
SCRIPT=`basename ${BASH_SOURCE[0]}` | |
SVERSION='1.1' | |
#Set fonts for Help. | |
NORM=`tput sgr0` | |
BOLD=`tput bold` | |
REV=`tput smso` | |
#Help function | |
function HELP { | |
echo -e \\n"Help documentation for ${BOLD}${SCRIPT} v${SVERSION}${NORM}"\\n | |
echo -e "${REV}Basic usage:${NORM} ${BOLD}$SCRIPT /file.obb${NORM}"\\n | |
echo -e "The following options are recognized."\\n | |
echo "[default] ${REV}-m${NORM} -- Installs a main obb file." | |
echo -e " ${REV}-p${NORM} -- Installs a patch obb file."\\n | |
echo | |
echo " ,.ood888888888888boo., " | |
echo " .od888P^ ^Y888bo. " | |
echo " .od8P ..oood88888888booo. Y8bo. " | |
echo " .odP .ood8888888888888888888888boo. Ybo. " | |
echo " .d8 od8 d888888888f 8888 t888888888b 8bo Yb. " | |
echo " d8 od8^ 8888888888[ ]8888888888 ^8bo 8b " | |
echo " .8P d88 8888888888P Y8888888888 88b Y8. " | |
echo " d8 .d8 Y88888888 88888888P 8b. 8b " | |
echo " .8P .88P Y88. Y8. " | |
echo " 88 888 888 88 " | |
echo " 88 888 888 88 " | |
echo " 88 888. .. .. .888 88 " | |
echo " 8b 88b, d8888b.od8bo. .od8bo.d8888b ,d88 d8 " | |
echo " Y8. Y88. 8888888888888b d8888888888888 .88P .8P " | |
echo " 8b Y88b. 88888888888888 88888888888888 .d88P d8 " | |
echo " Y8. ^Y88bod8888888888888..8888888888888bod88P^ .8P " | |
echo " Y8. ^Y888888888888888LS888888888888888P^ .8P " | |
echo " ^Yb., ^^Y8888888888888888888888P^^ ,.dP^ " | |
echo " ^Y8b.. ^^^Y88888888P^^^ ..d8P^ " | |
echo " ^Y888bo., ,.od888P^ " | |
echo " ^^Y888888888888P^^ " | |
echo | |
exit | |
} | |
NUMARGS=$# | |
file=$@ | |
if [ $NUMARGS -eq 0 ]; then | |
HELP | |
fi | |
if [ $NUMARGS -eq 2 ]; then | |
file=$2 | |
fi | |
if [ $NUMARGS -gt 2 ]; then | |
echo "Option not allowed. Use ${BOLD}$SCRIPT -h${NORM} to see the help documentation." | |
fi | |
function MAIN_PROCESS { | |
file_name=$(basename "$file") | |
if [[ ${file_name:0:5} = "main." ]]; then | |
pkg_name=$(echo $file_name | perl -nle 'm/([^main\.\d+].+?(?=.obb))/; print $1') | |
echo 'Copying' $file_name 'to obb/'$pkg_name'/' | |
adb+ shell mkdir -p sdcard/Android/obb/$pkg_name | |
adb+ push $file sdcard/Android/obb/$pkg_name/ | |
elif [[ ${file_name:0:6} = "patch." ]]; then | |
pkg_name=$(echo $file_name | perl -nle 'm/([^patch\.\d+].+?(?=.obb))/; print $1') | |
echo 'Copying' $file_name 'to obb/'$pkg_name'/' | |
adb+ shell mkdir -p sdcard/Android/obb/$pkg_name | |
adb+ push $file sdcard/Android/obb/$pkg_name/ | |
else | |
pkg_name=$(echo $file_name | perl -nle 'm/(^[^-]+)/; print $1') | |
obb_build=$(echo $file_name | perl -nle 'm/(?<=\-)(.*?)(?=\.)/; print $1') | |
new_name=$obb_type.$obb_build.$pkg_name.obb | |
mkdir -p .tmp-obb/$pkg_name | |
echo 'Copying' $new_name 'to obb/'$pkg_name'/' | |
cp $file .tmp-obb/$pkg_name/$new_name | |
adb+ shell mkdir -p sdcard/Android/obb/$pkg_name | |
adb+ push .tmp-obb/$pkg_name/$new_name sdcard/Android/obb/$pkg_name/ | |
rm -r .tmp-obb | |
fi | |
exit | |
} | |
function VERIFY_FILE { | |
echo $file | |
echo $FILE_EXT | |
TEMPFILE=`basename $file` | |
FILE_BASE=`echo "${TEMPFILE%.*}"` #file without extension | |
FILE_EXT="${TEMPFILE##*.}" #file extension | |
if [ -z "$file" ]; then | |
echo "Select a .obb file" | |
else | |
if [ $FILE_EXT == "obb" ]; then | |
MAIN_PROCESS | |
else | |
echo "Select a valid .obb file" | |
fi | |
fi | |
exit | |
} | |
### Start getopts code ### | |
#Parse command line flags | |
#If an option should be followed by an argument, it should be followed by a ":". | |
#Notice there is no ":" after "h". The leading ":" suppresses error messages from | |
#getopts. This is required to get my unrecognized option code to work. | |
obb_type="main" | |
while getopts :m:p:h opt; do | |
case $opt in | |
m) #set option "a" | |
obb_type="main" | |
;; | |
p) #set option "b" | |
obb_type="patch" | |
;; | |
h) #set option "b" | |
HELP | |
;; | |
\?) #unrecognized option - show help | |
echo -e \\n"Option -${BOLD}$OPTARG${NORM} not allowed." | |
HELP | |
#If you just want to display a simple error message instead of the full | |
#help, remove the 2 lines above and uncomment the 2 lines below. | |
#echo -e "Use ${BOLD}$SCRIPT -h${NORM} to see the help documentation."\\n | |
#exit 2 | |
;; | |
esac | |
done | |
if [ $# -eq 1 ] || [ $# -eq 2 ]; then | |
if [ ! -f $file ]; then | |
echo "File not found!" | |
else | |
VERIFY_FILE | |
fi | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment