227 lines
7.4 KiB
Bash
Executable File
227 lines
7.4 KiB
Bash
Executable File
#!/bin/bash
|
|
CUR_DIR=$(pwd)
|
|
THEMES_PROJECT_FOLDER="/home/lucas/Documents/Dokumente/Projekte/Handy/ThemeProject"
|
|
UNZIP=false
|
|
BUILD=false
|
|
FIND=false
|
|
FONT="DroidSans"
|
|
BUILD_NC_THEME=false
|
|
THEME_NAME="SolarSystemTheme"
|
|
usage() {
|
|
printf "Usage:
|
|
-build\t\tBuild the Theme
|
|
-build_NC\t\tBuild the NextCloud Theme
|
|
-unzip\t\tUnzip com.* folders in the Theme Project Folder
|
|
-name <name>\tAlternate Theme Name(Default: SolarSystemTheme)
|
|
-font <name>
|
|
-f <arg>\tFind arg in Theme Files
|
|
-p <path>\tPath of the Theme Project Folder(default: quiethost path)
|
|
-h\t\tDisplay Usage
|
|
-help\tDisplay Usage\n"
|
|
}
|
|
get_config() {
|
|
while [[ ${1:0:1} == - ]]; do
|
|
echo "Param: $1"
|
|
[[ $1 == -build ]] && {
|
|
BUILD=true
|
|
shift 1;
|
|
continue;
|
|
};
|
|
[[ $1 == -build_NC ]] && {
|
|
BUILD_NC_THEME=true
|
|
shift 1;
|
|
continue;
|
|
};
|
|
[[ $1 == -name ]] && {
|
|
if [ "$2" == "" ]; then echo "Too few arguments"; usage; exit; fi
|
|
THEME_NAME="$2"
|
|
shift 2;
|
|
continue;
|
|
};
|
|
[[ $1 == -font ]] && {
|
|
FIND=true
|
|
if [ "$2" == "" ]; then echo "Too few arguments"; usage; exit; fi
|
|
FONT="$(echo $2 | sed 's/.ttf//g')"
|
|
shift 2;
|
|
continue;
|
|
};
|
|
[[ $1 == -f ]] && {
|
|
FIND=true
|
|
if [ "$2" == "" ]; then echo "Too few arguments"; usage; exit; fi
|
|
FIND_arg="$2"
|
|
shift 2;
|
|
continue;
|
|
};
|
|
[[ $1 == -p ]] && {
|
|
if [ "$2" == "" ]; then
|
|
printf "Too few arguments\nPath: ${THEMES_PROJECT_FOLDER}\n"
|
|
shift 1
|
|
continue
|
|
fi
|
|
THEMES_PROJECT_FOLDER="$2"
|
|
shift 2;
|
|
continue;
|
|
};
|
|
[[ $1 == -unzip ]] && {
|
|
UNZIP=true
|
|
shift 1;
|
|
continue;
|
|
};
|
|
[[ $1 == -help ]] && {
|
|
usage
|
|
exit
|
|
};
|
|
|
|
echo "Parameter $1 discarded"
|
|
usage
|
|
shift 1;
|
|
done
|
|
}
|
|
build_theme() {
|
|
date=$(date +"%m%d%H%M%S")
|
|
if [ -d ".${THEME_NAME}_BUFF" ]; then
|
|
rm -dr .${THEME_NAME}_BUFF
|
|
fi
|
|
mkdir .${THEME_NAME}_BUFF
|
|
echo "${CUR_DIR}"
|
|
echo "Contacts Background"
|
|
ICON_str="${THEME_NAME}/ContactsBG/ContactsBG"
|
|
if [ -d "${THEME_NAME}/ContactsBG" ]; then
|
|
if [ "$(ls ${ICON_str}*png)" != "" ]; then
|
|
echo "Choose random Contacts Background"
|
|
RAND_NUM=$(($RANDOM % $(ls ${THEME_NAME}/ContactsBG/*png | wc -l) + 1 ))
|
|
echo "${ICON_str}${RAND_NUM}.png"
|
|
cp ${ICON_str}${RAND_NUM}.png ${THEME_NAME}/com.android.contacts/res/drawable-xxhdpi/contact_detail_list_background.9.png
|
|
cp ${ICON_str}${RAND_NUM}.png ${THEME_NAME}/framework-res-hwext/res/drawable-xxhdpi/background_emui.9.png
|
|
fi
|
|
fi
|
|
for folder in $(ls -d ${THEME_NAME}/com.*); do
|
|
folder="$(echo "${folder}" | rev | cut -f1 -d'/' | rev)"
|
|
echo ${folder}
|
|
if [ -d ".${THEME_NAME}_BUFF/${folder}" ]; then
|
|
rm -dr .${THEME_NAME}_BUFF/${folder}
|
|
fi
|
|
cp -r ${THEME_NAME}/framework-res-hwext ${THEME_NAME}/${folder}
|
|
cd ${THEME_NAME}/${folder}
|
|
zip -q -r ${folder} *
|
|
mv ${folder} ../../.${THEME_NAME}_BUFF/${folder}
|
|
cd ${THEMES_PROJECT_FOLDER}
|
|
rm -dr ${THEME_NAME}/${folder}/framework-res-hwext
|
|
done
|
|
|
|
if [ -f ".${THEME_NAME}_BUFF/icons" ]; then
|
|
rm .${THEME_NAME}_BUFF/icons
|
|
fi
|
|
echo "Icons"
|
|
ICON=("Toshl" "FoE" "Hangar")
|
|
HUAWEI_name=("com.thirdframestudios.android.expensoor.png" "com.innogames.foeandroid.png" "me.calebjones.spacelaunchnow.png")
|
|
for (( i=0 ; i<${#ICON[@]} ; i++ )); do
|
|
ICON_str="${THEME_NAME}/${ICON[$i]}/${ICON[$i]}"
|
|
if [ -d "${THEME_NAME}/${ICON[$i]}" ]; then
|
|
if [ "$(ls ${ICON_str}*png)" != "" ]; then
|
|
echo "Choose random ${ICON[$i]} Icon"
|
|
cp ${ICON_str}$(($RANDOM % $(ls ${ICON_str}*png | wc -l) + 1 )).png ${THEME_NAME}/icons/${HUAWEI_name[$i]}
|
|
fi
|
|
fi
|
|
done
|
|
cd ${THEME_NAME}/icons
|
|
zip -q -r icons.zip *
|
|
mv icons.zip ../../.${THEME_NAME}_BUFF/icons
|
|
cd ${THEMES_PROJECT_FOLDER}
|
|
|
|
if [ -f "${THEME_NAME}.zip" ]; then
|
|
rm ${THEME_NAME}.zip
|
|
fi
|
|
echo "Preview, Unlock, Wallpaper, font and description.xml"
|
|
if [ -f "${THEME_NAME}/fonts/${FONT}.ttf" ]; then
|
|
echo "Use font ${FONT}"
|
|
mkdir .${THEME_NAME}_BUFF/fonts
|
|
cp ${THEME_NAME}/fonts/${FONT}.ttf .${THEME_NAME}_BUFF/fonts/${FONT}Chinese.ttf
|
|
else
|
|
echo "Font ${RONT} not available"
|
|
fi
|
|
cp -r ${THEME_NAME}/preview .${THEME_NAME}_BUFF/
|
|
cp -r ${THEME_NAME}/unlock .${THEME_NAME}_BUFF/
|
|
cp -r ${THEME_NAME}/wallpaper .${THEME_NAME}_BUFF/
|
|
cp -r ${THEME_NAME}/description.xml .${THEME_NAME}_BUFF/
|
|
cd .${THEME_NAME}_BUFF
|
|
echo "Create ${THEME_NAME}_${date}.hwt"
|
|
sed -i 's/Theme<\/title/Theme_'"${date}"'<\/title/g' description.xml
|
|
zip -q -r ${THEME_NAME}.zip *
|
|
cp ${THEME_NAME}.zip ../${THEME_NAME}_${date}.hwt
|
|
cd ${THEMES_PROJECT_FOLDER}
|
|
echo "Remove Smartphone themecache, .cache and old ${THEME_NAME}s"
|
|
if [ "$(find /run/user/$(id -u $(whoami))/gvfs/mtp:host*/Inter*/Huawei/Themes/ -name "${THEME_NAME}*")" != "" ]; then
|
|
rm /run/user/$(id -u $(whoami))/gvfs/mtp:host*/Inter*/Huawei/Themes/${THEME_NAME}*
|
|
fi
|
|
if [ -d /run/user/$(id -u $(whoami))/gvfs/mtp:host*/Inter*/Huawei/Themes/themecache ]; then
|
|
rm -dr /run/user/$(id -u $(whoami))/gvfs/mtp:host*/Inter*/Huawei/Themes/themecache
|
|
fi
|
|
if [ -d /run/user/$(id -u $(whoami))/gvfs/mtp:host*/Inter*/Huawei/Themes/.cache ]; then
|
|
rm -dr /run/user/$(id -u $(whoami))/gvfs/mtp:host*/Inter*/Huawei/Themes/.cache
|
|
fi
|
|
echo "Transfer Theme to Smartphone"
|
|
cp --no-preserve=ownership,timestamps ${THEME_NAME}_${date}.hwt /run/user/$(id -u $(whoami))/gvfs/mtp:host*/Inter*/Huawei/Themes/
|
|
echo "Move local Theme to NC"
|
|
cp ${THEME_NAME}_${date}.hwt ${THEME_NAME}/${THEME_NAME}.hwt
|
|
rm -dr .${THEME_NAME}_BUFF
|
|
}
|
|
unzip_com() {
|
|
CUR_DIR="$(pwd)"
|
|
rm -dr ${THEME_NAME}/*
|
|
unzip ${THEME_NAME}.hwt -d ${THEME_NAME}/
|
|
for folder in $(ls -d ${THEME_NAME}/com.*); do
|
|
folder="$(echo "${folder}" | rev | cut -f1 -d'/' | rev)"
|
|
echo ${folder}
|
|
if [ -d "${THEME_NAME}/${folder}" ]; then
|
|
echo "${folder} is a Directory"
|
|
exit
|
|
fi
|
|
if [ -d "${THEME_NAME}/buf_${folder}" ]; then
|
|
rm -dr buf_${folder}
|
|
fi
|
|
cd ${THEME_NAME}
|
|
unzip -q ${folder} -d buf_${folder}
|
|
rm ${folder}
|
|
if [ -d "buf_${folder}" ];then
|
|
mv buf_${folder} ${folder}
|
|
fi
|
|
if [ -d "${folder}/framework-res-hwext" ];then
|
|
cp -r ${folder}/framework-res-hwext framework-res-hwext_${folder}
|
|
rm -dr ${folder}/framework-res-hwext
|
|
fi
|
|
cd ${CUR_DIR}
|
|
done
|
|
unzip ${THEME_NAME}/icons -d ${THEME_NAME}/icons_buff
|
|
rm ${THEME_NAME}/icons
|
|
mv ${THEME_NAME}/icons_buff ${THEME_NAME}/icons
|
|
}
|
|
find_themes() {
|
|
grep "${FIND_arg}" -r ${THEME_NAME}/*
|
|
}
|
|
build_NC_theme() {
|
|
NC_THEME_DIR="/home/lucas/Documents/Dokumente/Projekte/Server/serverhost/NextCloudThemes/"
|
|
theme_NUM=2
|
|
rsync -rlvz --delete ${NC_THEME_DIR}${THEME_NAME}${theme_NUM}/* /nextcloud/nextcloud/themes/${THEME_NAME}/
|
|
sudo chown -R www-data /nextcloud/nextcloud/themes/${THEME_NAME}
|
|
sudo chgrp -R www-data /nextcloud/nextcloud/themes/${THEME_NAME}
|
|
}
|
|
sync_image() {
|
|
echo "Sync Nextcloud"
|
|
if [ $(id -u) -eq 0 ]; then
|
|
sudo -u lucas /usr/bin/syncNC -t > /dev/null 2>&1
|
|
else
|
|
/usr/bin/syncNC -t > /dev/null 2>&1
|
|
fi
|
|
}
|
|
if [ $# -lt 1 ]; then usage; fi
|
|
get_config "$@"
|
|
echo "Move to ${THEMES_PROJECT_FOLDER}"
|
|
sync_image
|
|
cd ${THEMES_PROJECT_FOLDER}
|
|
if ${BUILD}; then build_theme; fi
|
|
if ${UNZIP}; then unzip_com; fi
|
|
if ${FIND}; then find_themes; fi
|
|
if ${BUILD_NC_THEME}; then build_NC_theme; fi
|
|
cd ${CUR_DIR}
|
|
sync_image |