#!/bin/bash

reset

echo "Copyright (c) 2019-2021 The Spark Project"

if [ -x "/usr/bin/deepin-deb-installer" ] ; then 
	echo "深度软件包安装器已安装，开始检测证书"
else
	echo "未安装深度软件包安装器，拒绝执行"
	echo "UOS需要深度软件包安装器来认证签名"
	echo "如果你用的是UOS，你能卸载这玩意说明你已经开了开发者模式......悄悄告诉你，放屁是不用脱裤子的！"
	echo "如果你用的不是统信系发行版......所以你为什么要打开这个脚本？"
	exit 1
fi

if [ -f "/usr/share/ca-certificates/deepin/private/priv.crt" ] ; then 
	echo "检测到已经生成过证书，直接跳过询问"
else
	until [ -f "/usr/bin/cert-tool" ] ; do
	#强制未安装证书工具的不通过
		echo "该工具的原理是利用UOS的自签名安装包免开发者的特性，需要您的UOS ID账号和密码，请在使用工具前确保在应用商店中已安装过“证书工具”这个应用"
		echo "如果没有安装，则无法使用。请确认安装后再进行下一步操作"
		echo "如果你确认已经安装了该应用，请按回车"
		read renyijian

		#检测是否在说谎签名文件
		if [ -f "/usr/bin/cert-tool" ] ; then
			echo "成功检测到cert-tool存在，开始检测证书\n"
		else
			echo "没有检测到该应用，请您再次确认“证书工具”已经安装！"
			sleep 3
			clear
		fi
	done

	until [ -f "/usr/share/ca-certificates/deepin/private/priv.crt" ] ; do 
		echo "没有检测到证书，准备调用证书工具生成证书，请输入您的UOS账号/密码。本脚本不会上传任何信息"
		echo "请在此行输入您的UOS账号用户名/电话号/邮箱"
		read account
		echo "请在此行输入您的UOS账号密码"
		read passwd
		echo "即将安装证书，请在弹出的窗口安装"
		cert-tool -username="$account" -password="$passwd"
	done
	echo "检测到已经生成过证书，准备签名"
fi
#这个if是判断是否已经有证书

unset account
unset passwd
unset renyijian

mkdir -p /tmp/spark-store-appremover
cd /tmp/spark-store-appremover
#工作目录应当为 /tmp/spark-store-appremover

while [ ! $pkgname ] ; do
	if [ ! $1 ] ; then 
		echo "没有检测到包名，以交互式模式运行"
		echo "请输入你要卸载的软件包名，输入结束后回车"
		read pkgname
	else
		echo "检测到包名，跳过获取"
		pkgname="$1"
		echo "读取到的包名为：$pkgname"
	fi

	if [ ! $pkgname ] ; then
		echo "没有检测到包名，请重新输入！"
		sleep 3
		clear
	else 
		echo "包名读取成功，进入下一步"
	fi
done

#while [ ! $version ] ; do
#	if [ ! $2 ] ; then 
#    		echo "没有检测到版本号，以交互式模式运行"
#    		echo "请输入你要卸载的软件包版本号，输入结束后回车"
#    		read version
#	else
#    		echo "检测到包名，跳过获取"
#    		version="$2"
#    		echo "读取到的版本号为：$version"
#	fi
#
#	if [ ! $version ] ; then
#		echo "没有检测到版本号，请重新输入！"
#		sleep 3
#		clear
#	else
#		echo "版本号读取成功，进入下一步"
#	fi
#done

#发现版本号不一定一致也可以卸载
version="1.0"
echo "开始生成deb包"
echo "输出的control文件为"
echo ""
echo "Package: $pkgname"
echo "Version: $version"
echo "Depends: "
echo "Maintainer: spark-store"
echo "Description: 这是一个假软件包，请点击卸载"
echo "Architecture: $(arch)"
echo "-----------------------开始生成-----------------------"
workdir=$(pwd)
echo "工作目录为$workdir"
mkdir DEBIAN
cd DEBIAN
touch control
echo "Package: $pkgname" >> ./control 
echo "Version: $version" >> ./control 
echo "Depends: "  >> ./control 
echo "Maintainer: spark-store" >> ./control 
echo "Description: 这是一个假软件包，请点击卸载" >> ./control 
echo "Architecture: $(arch)" >> ./control

echo "-----------------------开始打包-----------------------"
cd ..
workdir=$(pwd)
echo "回退到工作目录，当前目录位于$workdir"
fakeroot dpkg -b . ./uninstall.deb
echo "-----------------------打包结束-----------------------"

cd /tmp

echo "-----------------------开始签名-----------------------"
deepin-elf-sign-deb "/tmp/spark-store-appremover/uninstall.deb"
echo "-----------------------签名结束-----------------------"
echo "-----------------启动深度软件包管理器-------------------"

deepin-deb-installer "/tmp/signed_deb/uninstall.deb"

file_name=$(basename "/tmp/signed_deb/uninstall.deb")
echo "---------------以上为深度软件包管理器输出----------------"
echo "删除临时包"
rm  "/tmp/signed_deb/$file_name"
rm -r /tmp/spark-store-appremover
