diff --git a/termux-junk-clean.sh b/termux-junk-clean.sh new file mode 100644 index 0000000..53f07fb --- /dev/null +++ b/termux-junk-clean.sh @@ -0,0 +1,243 @@ +#!/bin/bash + +#!/bin/bash + +## Termux-Junk-Cleaner : Junk cleaner +## Author : DISU1950 +## Version : 1.9.5.0 +## Gitea : https://gitea.dmz/disu1950 + + + + +## Termux-Junk-Cleaner Copyright (C) 2077 DISU1950 (https://gitea.dmz/disu1950) + + + +author="DISU1950" +version="v1.9.5.0" + +LOG_FILE="cleanup_log.txt" + +# Set current date in log file +echo -e "\e[1;34m-------------------------------\e[0m" >> "$LOG_FILE" +echo -e "\e[1;34mDate: $(date)\e[0m" >> "$LOG_FILE" +echo -e "\e[1;34m-------------------------------\e[0m" >> "$LOG_FILE" + +# Function to simulate typing effect +typing_effect() { + local text="$1" + for ((i=0; i<${#text}; i++)); do + echo -n "${text:$i:1}" + sleep 0.03 + done + echo +} + +#installation function +# install() {} + + + echo -e "\e[1;31m + ┌─────────┐ ┌─────────┐ + ──────│\e[94m [▓▓▓▓▓▓▓▓░░░░░] \e[1;31m│────── + ─────────── │ \e[38;5;83m TΞRMUX JΞNK \e[1;31m │ ─────────── + ─────────── │ \e[38;5;83m C L E A N E R \e[1;31m │ ─────────── + ──────│\e[94m [░░░░░▓▓▓▓▓▓▓▓] \e[1;31m│────── + └─────────┘ └─────────┘\e[0m" +echo -e " \033[40;38;5;83m Version \033[30;48;5;83m $version \033[0m" +echo -e " \033[30;48;5;83m Copyright \033[40;38;5;83m ${author}\033[0m" + #echo -e " \033[2;31;40m Advanced Junk Cleanup Tool by Arjun V. \033[0m" + echo -e " \e[1;34m--------------------------------------------\e[0m" + + + +cleanup_options() { + read -p $'\n\e[1;35m Do you want to clean unnecessary logs? (y/n): \e[0m' clean_logs + read -p $'\e[1;35m Do you want to clean cache files? (y/n): \e[0m' clean_cache + read -p $'\e[1;35m Do you want to clean cached packages? (y/n): \e[0m' clean_packages + read -p $'\e[1;35m Do you want to remove unnecessary or unused packages? (y/n): \e[0m' clean_unused_packages + read -p $'\e[1;35m Do you want to clean temporary files? (y/n): \e[0m' clean_temp + read -p $'\e[1;35m Do you want to clean temporary backup files? (y/n): \e[0m' clean_temp_backup +} + +# Function to clean cache files +clean_cache() { + typing_effect $'\n\e[1;32mCleaning cache files...\e[0m' + deleted_cache=$(find /data/data/com.termux/files/home/.cache/ -type f -delete -print 2>/dev/null) + deleted_app_cache=$(find /data/data/com.termux/cache -type f -delete -print 2>/dev/null) + echo "$deleted_cache" >> "$LOG_FILE" + echo "$deleted_app_cache" >> "$LOG_FILE" +} + +# Function to clean cached packages +clean_cached_packages() { + typing_effect $'\n\e[1;32mCleaning cached packages...\e[0m' + deleted_packages=$(apt-get clean 2>/dev/null | grep "cleaned") + echo "$deleted_packages" >> "$LOG_FILE" +} + +# Function to remove unnecessary or unused packages +remove_unused_packages() { + typing_effect $'\n\e[1;32mRemoving unnecessary or unused packages...\e[0m' + removed_unused_packages=$(apt autoremove -y 2>/dev/null) + echo "$removed_unused_packages" >> "$LOG_FILE" +} + +# Function to clean temporary files +clean_temp_files() { + typing_effect $'\n\e[1;32mCleaning temporary files...\e[0m' + deleted_temp=$(find /data/data/com.termux/files/home/tmp/ -type f -delete -print 2>/dev/null) + echo "$deleted_temp" >> "$LOG_FILE" +} + +# Function to clean temporary backup files +clean_temp_backup_files() { + typing_effect $'\n\e[1;32mCleaning temporary backup files...\e[0m' + deleted_temp_backup=$(find /data/data/com.termux/files/home/ -type f -name "*.bak" -delete -print 2>/dev/null) + echo "$deleted_temp_backup" >> "$LOG_FILE" +} + +# Function to clean unnecessary logs +clean_unnecessary_logs() { + typing_effect $'\n\e[1;32mCleaning unnecessary logs...\e[0m' + # no need to remove the file just replace all data with new one using singal greater than + echo -e "\n\\e[1;34m----------------------------------- +Date: $(date)\e[0m +\e[1;34m----------------------------------- +\e[1;31mOld cleanup logs deleted." > "$LOG_FILE" + deleted_logs=$(find /data/data/com.termux/files/home -type f -name "*.log" -delete -print 2>/dev/null) + echo "$deleted_logs" >> "$LOG_FILE" +} + +success_msg() { + echo -e "\n\e[40;38;5;83mCleanup completed. Details logged in ${LOG_FILE} \e[0m\n" +} +# Function to clean all junks +clean_all() { + clean_unnecessary_logs + clean_cache + clean_cached_packages + remove_unused_packages + clean_temp_files + clean_temp_backup_files +} + +check_and_clean() { + # Check if logs cleanup is selected + if [[ "$clean_logs" == "y" || "$clean_logs" == "Y" ]]; then + clean_unnecessary_logs + else + echo -e "\n\e[1;33mSkipped cleaning unnecessary logs.\e[0m" + echo -e "\n\e[1;33mSkipped cleaning unnecessary logs.\e[0m \n" >> "$LOG_FILE" + fi + + # Check if cache cleanup is selected + if [[ "$clean_cache" == "y" || "$clean_cache" == "Y" ]]; then + clean_cache + else + echo -e "\n\e[1;33mSkipped cleaning cache files.\e[0m" + echo -e "\n\e[1;33mSkipped cleaning Cache.\e[0m \n" >> "$LOG_FILE" + fi + + # Check if cached packages cleanup is selected + if [[ "$clean_packages" == "y" || "$clean_packages" == "Y" ]]; then + clean_cached_packages + else + echo -e "\n\e[1;33mSkipped cleaning cached packages.\e[0m" + echo -e "\n\e[1;33mSkipped cleaning cached packages.\e[0m \n" >> "$LOG_FILE" + fi + + # Check if unused packages cleanup is selected + if [[ "$clean_unused_packages" == "y" || "$clean_unused_packages" == "Y" ]]; then + remove_unused_packages + else + echo -e "\n\e[1;33mSkipped removing unnecessary or unused packages.\e[0m" + echo -e "\n\e[1;33mSkipped cleaning unnecessary or unused packages.\e[0m \n" >> "$LOG_FILE" + fi + + # Check if temporary files cleanup is selected + if [[ "$clean_temp" == "y" || "$clean_temp" == "Y" ]]; then + clean_temp_files + else + echo -e "\n\e[1;33mSkipped cleaning temporary files.\e[0m" + echo -e "\n\e[1;33mSkipped cleaning temporary files.\e[0m \n" >> "$LOG_FILE" + fi + + # Check if temporary backup files cleanup is selected + if [[ "$clean_temp_backup" == "y" || "$clean_temp_backup" == "Y" ]]; then + clean_temp_backup_files + else + echo -e "\n\e[1;33mSkipped cleaning temporary backup files.\e[0m" + echo -e "\n\e[1;33mSkipped cleaning temporary backup files.\e[0m \n" >> "$LOG_FILE" + fi +} + +#uninstall() {} + +# Function to display help +display_help() { + echo -e "\n\e[1;34mUsage:\e[0m" + echo -e "\e[1;33m clean [OPTIONS]\e[0m" + echo -e "\n\e[1;34mOptions: Meaning:\e[0m" + echo -e "\e[1;33m -h, --help Display this help message\e[0m" + echo -e "\e[1;33m -c Clean cache files\e[0m" + echo -e "\e[1;33m -p Clean cached packages\e[0m" + echo -e "\e[1;33m -n Remove unnecessary or unused packages\e[0m" + echo -e "\e[1;33m -t Clean temporary files\e[0m" + echo -e "\e[1;33m -b Clean temporary backup files\e[0m" + echo -e "\e[1;33m -l Clean unnecessary logs\e[0m" + echo -e "\e[1;33m -a Clean all type of junks\e[0m" + echo -e "\n\e[1;34mExamples:\e[0m" + echo -e "\e[1;33m clean -c\e[0m # Clean cache." + echo -e "\n\e[1;34mNote:\e[0m" + echo -e "\e[1;33m You can combine multiple options, e.g., clean -c -p -t\e[0m\n" +} + +# Check for options and execute corresponding cleanup functions +options=("$@") + +for option in "${options[@]}"; do + case $option in + "-h" | "--help") + display_help + exit 0 + ;; + "-a") + clean_all + ;; + "-c") + clean_cache + ;; + "-p") + clean_cached_packages + ;; + "-n") + remove_unused_packages + ;; + "-t") + clean_temp_files + ;; + "-b") + clean_temp_backup_files + ;; + "-l") + clean_unnecessary_logs + ;; + *) + echo -e "\n\e[1;31mInvalid option.\e[1;33m Use '$0 -h' for help.\e[0m \n" + echo -e "\e[1;31mInvalid option.\e[1;33m Use '$0 -h' for help.\e[0m\n" >> "$LOG_FILE" + exit 1 + ;; + esac +done + +# Default condition when no argument chosen + if [ "$#" == "0" ]; then + cleanup_options + check_and_clean + fi + +# Default actions after cleanup compled. + + success_msg \ No newline at end of file