#!/bin/bash
reset
if [ -f "/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


cd /tmp
mkdir spark-store-appremover
cd 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: amd64"
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: amd64" >> ./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