Skip to content

Instantly share code, notes, and snippets.

@mortenjust
Created January 22, 2016 20:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mortenjust/31c7080823846a90d3e0 to your computer and use it in GitHub Desktop.
Save mortenjust/31c7080823846a90d3e0 to your computer and use it in GitHub Desktop.
install obb on all connected devices, requires adb+
#!/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