#!/bin/bash

set -x

# 清除 GPU Shader 缓存

function delete_user_shader_cache() {
	USERHOME=/home/$1

	if [ -z "$1" ]; then
		echo "USER is NULL"
		return
	fi
	if [ ! -d "${USERHOME}" ]; then
		echo "Not exist ${USERHOME}"
		return
	fi

	if [ -d ${USERHOME}/.config/ ]; then
		# 清除 GPUCache 目录内容
		find ${USERHOME}/.config/ -type d -name GPUCache 2>/dev/null | xargs -n 1 -I '!' rm -rf '!'
		# 清除 Cache 目录内容
		find ${USERHOME}/.config/ -type d -name Cache 2>/dev/null | xargs -n 1 -I '!' rm -rf '!'
		# 清除 'Code Cache' 目录内容
		find ${USERHOME}/.config/ -type d -name 'Code Cache' 2>/dev/null | xargs -n 2 -I '!' rm -rf "!"
	fi

	if [ -d ${USERHOME}/.cache/ ]; then
		# 清除 GPUCache 目录内容
		find ${USERHOME}/.cache/ -type d -name GPUCache 2>/dev/null | xargs -n 1 -I '!' rm -rf '!'
		# 清除 Cache 目录内容
		find ${USERHOME}/.cache/ -type d -name Cache 2>/dev/null | xargs -n 1 -I '!' rm -rf '!'
		# 清除 'Code Cache' 目录内容
		find ${USERHOME}/.cache/ -type d -name 'Code Cache' 2>/dev/null | xargs -n 2 -I '!' rm -rf "!"
	fi

}

# 获取用户列表
USERS=`ls /home/`
for USER in ${USERS}
do
	delete_user_shader_cache ${USER}
done
