mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-15 21:32:05 +08:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9a74368ef5 | |||
| cf5e1cae76 | |||
| 4c7d50d117 | |||
| 6318b5f51d | |||
| 2f94e78c32 | |||
| fecda52294 | |||
| 8cefdbaca0 | |||
| 0da714b35a | |||
| 379c5a857d | |||
| 3b349d43ad | |||
| b856734843 | |||
| 238c43b79e | |||
| 855b18cfa6 | |||
| bc897969f8 | |||
| 52af8a8229 | |||
| 5220b886de | |||
| 5be7923e60 | |||
| 6ca6f63b1f | |||
| bda0426a3b | |||
| a75b7b1e57 | |||
| 8054f85ada | |||
| bc6584eacc | |||
| c9e01d10fe | |||
| c3b9763aa8 | |||
| 398cd512d7 | |||
| 0c0ff452ae | |||
| e6d3b035db | |||
| 5e88f7c1eb | |||
| b639a9d726 | |||
| e2f6a2b3c2 | |||
| c826a3927c |
39
.workflow/dtk-build-commit-20220425.yml
Normal file
39
.workflow/dtk-build-commit-20220425.yml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
version: '1.0'
|
||||||
|
name: dtk-build-commit-20220425
|
||||||
|
displayName: dtk-build-commit
|
||||||
|
triggers:
|
||||||
|
trigger: auto
|
||||||
|
pr:
|
||||||
|
branches:
|
||||||
|
prefix:
|
||||||
|
- ''
|
||||||
|
stages:
|
||||||
|
- name: stage-4e566164
|
||||||
|
displayName: build
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
executor: []
|
||||||
|
steps:
|
||||||
|
- step: execute@docker
|
||||||
|
name: execute_by_docker
|
||||||
|
displayName: 基于镜像的脚本执行
|
||||||
|
certificate: ''
|
||||||
|
image: docker.io/debian:buster-slim
|
||||||
|
command:
|
||||||
|
- sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||||
|
- '# 换源'
|
||||||
|
- apt update
|
||||||
|
- export DEBIAN_FRONTEND=noninteractive
|
||||||
|
- echo "安装git devscripts equivs ..."
|
||||||
|
- apt install git devscripts equivs curl -y >/dev/null 2>&1
|
||||||
|
- git clone https://gitlink.org.cn/shenmo7192/dtk-old-bundle.git
|
||||||
|
- cd dtk-old-bundle
|
||||||
|
- apt install ./*.deb -y
|
||||||
|
- cd ..
|
||||||
|
- rm -rf dtk-old-bundle
|
||||||
|
- 'mk-build-deps --install --tool "apt-get -o Debug::pkgProblemResolver=yes -y" '
|
||||||
|
- dpkg-buildpackage -b -us -uc
|
||||||
|
- cd ..
|
||||||
|
- ls -all
|
||||||
|
- pwd
|
||||||
|
strategy: {}
|
||||||
63
.workflow/dtk-build-release-tag-20220425.yml
Normal file
63
.workflow/dtk-build-release-tag-20220425.yml
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
version: '1.0'
|
||||||
|
name: dtk-build-release-tag-20220425
|
||||||
|
displayName: dtk-build-release-tag
|
||||||
|
triggers:
|
||||||
|
trigger: auto
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
prefix:
|
||||||
|
- ''
|
||||||
|
stages:
|
||||||
|
- name: stage-4e566164
|
||||||
|
displayName: build
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
executor: []
|
||||||
|
steps:
|
||||||
|
- step: build@gcc
|
||||||
|
name: build_gcc
|
||||||
|
displayName: GCC 构建
|
||||||
|
gccVersion: '9.4'
|
||||||
|
commands:
|
||||||
|
- sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||||
|
- '# 换源'
|
||||||
|
- apt update
|
||||||
|
- echo "正在准备Debian 10环境..."
|
||||||
|
- apt install git -y >/dev/null 2>&1
|
||||||
|
- git clone https://gitlink.org.cn/shenmo7192/debian-10-container.git
|
||||||
|
- mv debian-10-container/Debian-10.tar.xz /mnt
|
||||||
|
- cd /mnt/
|
||||||
|
- tar -xf Debian-10.tar.xz
|
||||||
|
- cd Debian-10
|
||||||
|
- wget https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/spark-build.sh
|
||||||
|
- chmod +x spark-build.sh
|
||||||
|
- echo "进入Debian 10环境"
|
||||||
|
- chroot /mnt/Debian-10 /bin/bash /spark-build.sh
|
||||||
|
- cd /mnt/Debian-10/build-spark
|
||||||
|
- 'mkdir target '
|
||||||
|
- for f in $(find . -type f -name "*.deb")
|
||||||
|
- do
|
||||||
|
- ' mv $f target'
|
||||||
|
- done
|
||||||
|
artifacts:
|
||||||
|
- name: BUILD_ARTIFACT
|
||||||
|
path:
|
||||||
|
- /mnt/Debian-10/build-spark/target
|
||||||
|
caches: []
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-29f3ffbb
|
||||||
|
displayName: 上传
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
executor: []
|
||||||
|
steps:
|
||||||
|
- step: publish@general_artifacts
|
||||||
|
name: publish_general_artifacts
|
||||||
|
displayName: 上传制品
|
||||||
|
dependArtifact: BUILD_ARTIFACT
|
||||||
|
artifactName: output
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
version: '1.0'
|
|
||||||
name: dtk-build-commit-20220425
|
|
||||||
displayName: dtk-build-commit
|
|
||||||
triggers:
|
|
||||||
trigger: manual
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
prefix:
|
|
||||||
- master
|
|
||||||
tags:
|
|
||||||
prefix:
|
|
||||||
- ''
|
|
||||||
stages:
|
|
||||||
- name: stage-4e566164
|
|
||||||
displayName: build
|
|
||||||
strategy: naturally
|
|
||||||
trigger: auto
|
|
||||||
executor: []
|
|
||||||
steps:
|
|
||||||
- step: execute@docker
|
|
||||||
name: execute_by_docker
|
|
||||||
displayName: 基于镜像的脚本执行
|
|
||||||
certificate: d3a72e50-a6b5-013a-3031-5e77c3ac149e
|
|
||||||
image: hub.docker.com/r/shenmo7192/uos-21-dtk5.4
|
|
||||||
command:
|
|
||||||
- git clone https://gitee.com/deepin-community-store/spark-store
|
|
||||||
- mkdir debs
|
|
||||||
- cd spark-store
|
|
||||||
- dpkg-buildpackage
|
|
||||||
- mv *.deb ../debs
|
|
||||||
- cd ../debs
|
|
||||||
- curl -s --url "smtp://smtp.163.com" --mail-from "sparkstorefeedback@163.com" --mail-rcpt "shenmo@spark-app.store" --upload-file ./*.deb --user "sparkstorefeedback@163.com:YWYGLQNOPLWNNJJY"
|
|
||||||
permissions:
|
|
||||||
- role: admin
|
|
||||||
members: []
|
|
||||||
@@ -22,7 +22,7 @@ If you want to submit an APP to share with others,Please [Click here](https://
|
|||||||
|
|
||||||
If you simply want to install the Spark Store,just enter the [Release] page, find the version you want and install.
|
If you simply want to install the Spark Store,just enter the [Release] page, find the version you want and install.
|
||||||
|
|
||||||
If you are using Debian11/Ubuntu 20.04, you will need extra dependency package. Available [here](https://d.store.deepinos.org.cn/spark-store-dependencies-kylin.zip)
|
If you are using Debian11/Ubuntu 20.04, you will need extra dependency package. Available [here](https://code.gitlink.org.cn/shenmo7192/spark-store-dependencies/raw/branch/master/spark-store-dependencies-kylin.zip)
|
||||||
|
|
||||||
---
|
---
|
||||||
#### Compile and developement
|
#### Compile and developement
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
如果想安装 `星火应用商店` ,请打开右侧的 [Release] 页面,找到最新版本,并选择适用于当前系统的安装包下载。
|
如果想安装 `星火应用商店` ,请打开右侧的 [Release] 页面,找到最新版本,并选择适用于当前系统的安装包下载。
|
||||||
|
|
||||||
如果你在使用 `Debian 11/Ubuntu 20.04`,你需要额外下载[依赖补充包](https://d.store.deepinos.org.cn/spark-store-dependencies-kylin.zip)
|
如果你在使用 `Debian 11/Ubuntu 20.04`,你需要额外下载[依赖补充包](https://code.gitlink.org.cn/shenmo7192/spark-store-dependencies/raw/branch/master/spark-store-dependencies-kylin.zip)
|
||||||
|
|
||||||
---
|
---
|
||||||
#### 编译安装
|
#### 编译安装
|
||||||
|
|||||||
55
debian/changelog
vendored
55
debian/changelog
vendored
@@ -1,3 +1,58 @@
|
|||||||
|
spark-store (3.1.5-5) stable; urgency=medium
|
||||||
|
|
||||||
|
* 从所有镜像源中选取最快镜像源高速下载
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
|
||||||
|
spark-store (3.1.5-4) stable; urgency=medium
|
||||||
|
|
||||||
|
* 更改ss-apt-fast策略,现在只会在update,ssupdate和没有检测到配置文件的时候更新配置文件
|
||||||
|
* 新增ss-apt-fast别名:aptss
|
||||||
|
* 更新检测服务优化:从分体改为一体
|
||||||
|
* aptss 支持自动补全
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.5-3) stable; urgency=medium
|
||||||
|
|
||||||
|
* 包内自带密钥
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.5-2) stable; urgency=medium
|
||||||
|
|
||||||
|
* 下载软件时跳过获取大小,修复部分软件无法下载的问题
|
||||||
|
* 修复 获取key时出错,指定使用http1.1
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.5-1) stable; urgency=medium
|
||||||
|
|
||||||
|
* 改变更新策略,UOS也下载加速,但是安装不加速
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.5) stable; urgency=medium
|
||||||
|
|
||||||
|
* 改变更新策略,现在支持应用在更新时引入新依赖
|
||||||
|
* ss-apt-fast现在默认允许降级,以与apt使用体验一致
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.4-2) stable; urgency=medium
|
||||||
|
|
||||||
|
* 客户端下载使用metalink来支持bt下载加速
|
||||||
|
* 修复使用更新和安装设置更新商店本体时出错
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
spark-store (3.1.4-1) stable; urgency=medium
|
spark-store (3.1.4-1) stable; urgency=medium
|
||||||
|
|
||||||
* 安装脚本和检测更新脚本检查网络时间超时时间延长至5s
|
* 安装脚本和检测更新脚本检查网络时间超时时间延长至5s
|
||||||
|
|||||||
27
debian/spark-store.postinst
vendored
27
debian/spark-store.postinst
vendored
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
configure)
|
configure)
|
||||||
|
|
||||||
|
# config for aptss
|
||||||
|
mkdir -p /etc/aptss/sources.list.d
|
||||||
|
ln -s -f /etc/apt/sources.list /etc/aptss/sources.list
|
||||||
|
|
||||||
|
|
||||||
# Check if /usr/local/bin existed
|
# Check if /usr/local/bin existed
|
||||||
mkdir -p /usr/local/bin
|
mkdir -p /usr/local/bin
|
||||||
|
|
||||||
@@ -11,32 +17,25 @@ case "$1" in
|
|||||||
ln -s -f /opt/durapps/spark-store/bin/spark-store /usr/local/bin/spark-store
|
ln -s -f /opt/durapps/spark-store/bin/spark-store /usr/local/bin/spark-store
|
||||||
ln -s -f /opt/durapps/spark-store/bin/ssinstall /usr/local/bin/ssinstall
|
ln -s -f /opt/durapps/spark-store/bin/ssinstall /usr/local/bin/ssinstall
|
||||||
ln -s -f /opt/durapps/spark-store/bin/spark-dstore-patch /usr/local/bin/spark-dstore-patch
|
ln -s -f /opt/durapps/spark-store/bin/spark-dstore-patch /usr/local/bin/spark-dstore-patch
|
||||||
ln -s -f /opt/durapps/spark-store/bin/ss-apt-fast /usr/local/bin/ss-apt-fast
|
ln -s -f /opt/durapps/spark-store/bin/aptss /usr/local/bin/ss-apt-fast
|
||||||
|
|
||||||
|
ln -s -f /opt/durapps/spark-store/bin/aptss /usr/bin/aptss
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Download and install key
|
# Download and install key
|
||||||
curl --progress-bar -o /tmp/spark-store-install/spark-store.asc https://d.store.deepinos.org.cn/dcs-repo.gpg-key.asc
|
mkdir -p /tmp/spark-store-install/
|
||||||
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
cp -f /opt/durapps/spark-store/bin/spark-store.asc /tmp/spark-store-install/spark-store.asc
|
||||||
|
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
||||||
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
|
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
|
||||||
|
|
||||||
|
|
||||||
# Remove existing source file
|
|
||||||
rm -f /etc/apt/preferences.d/sparkstore
|
|
||||||
rm -f /etc/apt/sources.list.d/sparkstore.list
|
|
||||||
|
|
||||||
|
|
||||||
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
||||||
|
|
||||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
aptss ssupdate
|
||||||
# 下载源列表
|
|
||||||
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
|
||||||
# 更新
|
|
||||||
|
|
||||||
|
|
||||||
# Create symbo links to start upgrade detect
|
|
||||||
ln -s /opt/durapps/spark-store/bin/update-upgrade/autostart/spark-update-notifier.desktop /etc/xdg/autostart/spark-update-notifier.desktop
|
|
||||||
|
|
||||||
# Start upgrade detect service
|
# Start upgrade detect service
|
||||||
systemctl enable spark-update-notifier
|
systemctl enable spark-update-notifier
|
||||||
service spark-update-notifier start
|
service spark-update-notifier start
|
||||||
|
|||||||
10
debian/spark-store.prerm
vendored
10
debian/spark-store.prerm
vendored
@@ -7,9 +7,12 @@ rm /usr/local/bin/spark-dstore-patch
|
|||||||
rm /usr/local/bin/ussinstall
|
rm /usr/local/bin/ussinstall
|
||||||
rm /usr/local/bin/ussremove
|
rm /usr/local/bin/ussremove
|
||||||
rm /usr/local/bin/ss-apt-fast
|
rm /usr/local/bin/ss-apt-fast
|
||||||
|
rm /usr/bin/aptss
|
||||||
|
|
||||||
|
rm -rf /etc/aptss/
|
||||||
|
|
||||||
# Remove residual symbol links to stop upgrade detect if exist
|
# Remove residual symbol links to stop upgrade detect if exist
|
||||||
if [ -f /etc/xdg/autostart/spark-update-notifier.desktop ];then
|
if [ -e /etc/xdg/autostart/spark-update-notifier.desktop ];then
|
||||||
rm /etc/xdg/autostart/spark-update-notifier.desktop
|
rm /etc/xdg/autostart/spark-update-notifier.desktop
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -21,11 +24,6 @@ systemctl disable spark-update-notifier
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Clean the update-number service place file if exist
|
|
||||||
if [ -d "/tmp/spark-store-updatenum/" ] ; then
|
|
||||||
rm -rf /tmp/spark-store-updatenum/
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean the auto install polkit file if exist
|
# Clean the auto install polkit file if exist
|
||||||
if [ -f "/usr/share/polkit-1/actions/store.spark-app.ssinstall.policy" ] ; then
|
if [ -f "/usr/share/polkit-1/actions/store.spark-app.ssinstall.policy" ] ; then
|
||||||
rm /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
rm /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ After=apt-daily.service network.target network-online.target systemd-networkd.se
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStart=/opt/durapps/spark-store/bin/update-upgrade/ss-update-notify-placer.sh
|
ExecStart=/opt/durapps/spark-store/bin/update-upgrade/ss-update-notifier.sh
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
|
|
||||||
|
|||||||
228
pkg/usr/share/bash-completion/completions/aptss
Normal file
228
pkg/usr/share/bash-completion/completions/aptss
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
# Debian apt(8) completion -*- shell-script -*-
|
||||||
|
|
||||||
|
_aptss()
|
||||||
|
{
|
||||||
|
local sourcesdir="/etc/apt/sources.list.d"
|
||||||
|
local cur prev words cword
|
||||||
|
_init_completion || return
|
||||||
|
|
||||||
|
local GENERIC_APT_GET_OPTIONS='
|
||||||
|
-d --download-only
|
||||||
|
-y --assume-yes
|
||||||
|
--assume-no
|
||||||
|
-u --show-upgraded
|
||||||
|
-m --ignore-missing
|
||||||
|
-t --target-release
|
||||||
|
--download
|
||||||
|
--fix-missing
|
||||||
|
--ignore-hold
|
||||||
|
--upgrade
|
||||||
|
--only-upgrade
|
||||||
|
--allow-change-held-packages
|
||||||
|
--allow-remove-essential
|
||||||
|
--allow-downgrades
|
||||||
|
--print-uris
|
||||||
|
--trivial-only
|
||||||
|
--remove
|
||||||
|
--arch-only
|
||||||
|
--allow-unauthenticated
|
||||||
|
--allow-insecure-repositories
|
||||||
|
--install-recommends
|
||||||
|
--install-suggests
|
||||||
|
--no-install-recommends
|
||||||
|
--no-install-suggests
|
||||||
|
--fix-policy
|
||||||
|
'
|
||||||
|
|
||||||
|
# see if the user selected a command already
|
||||||
|
local COMMANDS=(
|
||||||
|
"ssupdate"
|
||||||
|
"list"
|
||||||
|
"search"
|
||||||
|
"show" "showsrc"
|
||||||
|
"install" "remove" "purge" "autoremove"
|
||||||
|
"update"
|
||||||
|
"upgrade" "full-upgrade" "dist-upgrade"
|
||||||
|
"edit-sources"
|
||||||
|
"help"
|
||||||
|
"source" "build-dep"
|
||||||
|
"clean" "autoclean"
|
||||||
|
"download" "changelog"
|
||||||
|
"moo"
|
||||||
|
"depends" "rdepends"
|
||||||
|
"policy")
|
||||||
|
|
||||||
|
local command i
|
||||||
|
for (( i=0; i < ${#words[@]}-1; i++ )); do
|
||||||
|
if [[ ${COMMANDS[@]} =~ ${words[i]} ]]; then
|
||||||
|
command=${words[i]}
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Complete a -t<SPACE><TAB>
|
||||||
|
case $prev in
|
||||||
|
-t|--target-release)
|
||||||
|
COMPREPLY=( $( compgen -W "$( apt-cache policy -o Dir::Cache="/etc/aptss/" | egrep -o 'a=[^,]*|n=[^,]*' | cut -f2- -d= | sort -u)" -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# supported options per command
|
||||||
|
if [[ "$cur" == -* ]]; then
|
||||||
|
case $command in
|
||||||
|
install|remove|purge|upgrade|dist-upgrade|full-upgrade|autoremove)
|
||||||
|
COMPREPLY=( $( compgen -W '--show-progress
|
||||||
|
--fix-broken --purge --verbose-versions --auto-remove
|
||||||
|
-s --simulate --dry-run
|
||||||
|
--download
|
||||||
|
--fix-missing
|
||||||
|
--fix-policy
|
||||||
|
--ignore-hold
|
||||||
|
--force-yes
|
||||||
|
--trivial-only
|
||||||
|
--reinstall --solver
|
||||||
|
-t --target-release'"$GENERIC_APT_GET_OPTIONS" -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
update)
|
||||||
|
COMPREPLY=( $( compgen -W '--list-cleanup
|
||||||
|
--print-uris
|
||||||
|
--allow-insecure-repositories
|
||||||
|
' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
list)
|
||||||
|
COMPREPLY=( $( compgen -W '--installed --upgradable
|
||||||
|
--manual-installed
|
||||||
|
-v --verbose
|
||||||
|
-a --all-versions
|
||||||
|
-t --target-release
|
||||||
|
' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
show)
|
||||||
|
COMPREPLY=( $( compgen -W '-a --all-versions
|
||||||
|
' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
depends|rdepends)
|
||||||
|
COMPREPLY=( $( compgen -W '-i
|
||||||
|
--important
|
||||||
|
--installed
|
||||||
|
--pre-depends
|
||||||
|
--depends
|
||||||
|
--recommends
|
||||||
|
--suggests
|
||||||
|
--replaces
|
||||||
|
--breaks
|
||||||
|
--conflicts
|
||||||
|
--enhances
|
||||||
|
--recurse
|
||||||
|
--implicit' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
search)
|
||||||
|
COMPREPLY=( $( compgen -W '
|
||||||
|
-n --names-only
|
||||||
|
-f --full' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
showsrc)
|
||||||
|
COMPREPLY=( $( compgen -W '
|
||||||
|
--only-source' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
source)
|
||||||
|
COMPREPLY=( $( compgen -W '
|
||||||
|
-s --simulate --dry-run
|
||||||
|
-b --compile --build
|
||||||
|
-P --build-profiles
|
||||||
|
--diff-only --debian-only
|
||||||
|
--tar-only
|
||||||
|
--dsc-only
|
||||||
|
-t --target-release
|
||||||
|
'"$GENERIC_APT_GET_OPTIONS" -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
build-dep)
|
||||||
|
COMPREPLY=( $( compgen -W '
|
||||||
|
-a --host-architecture
|
||||||
|
-s --simulate --dry-run
|
||||||
|
-P --build-profiles
|
||||||
|
-t --target-release
|
||||||
|
--purge --solver
|
||||||
|
'"$GENERIC_APT_GET_OPTIONS" -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
moo)
|
||||||
|
COMPREPLY=( $( compgen -W '
|
||||||
|
--color
|
||||||
|
' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
clean|autoclean)
|
||||||
|
COMPREPLY=( $( compgen -W '
|
||||||
|
-s --simulate --dry-run
|
||||||
|
' -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# specific command arguments
|
||||||
|
if [[ -n $command ]]; then
|
||||||
|
case $command in
|
||||||
|
remove|purge|autoremove)
|
||||||
|
if [[ -f /etc/debian_version ]]; then
|
||||||
|
# Debian system
|
||||||
|
COMPREPLY=( $( \
|
||||||
|
_xfunc dpkg _comp_dpkg_installed_packages $cur ) )
|
||||||
|
else
|
||||||
|
# assume RPM based
|
||||||
|
_xfunc rpm _rpm_installed_packages
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
show|list|download|changelog|depends|rdepends)
|
||||||
|
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/etc/aptss/" \
|
||||||
|
2> /dev/null ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/etc/aptss/" \
|
||||||
|
2> /dev/null ) )
|
||||||
|
if [[ "$cur" == ./* || "$cur" == /* ]]; then
|
||||||
|
_filedir "deb"
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
source|build-dep|showsrc|policy)
|
||||||
|
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/etc/aptss/" \
|
||||||
|
2> /dev/null ) $( apt-cache dumpavail -o Dir::Cache="/etc/aptss/" | \
|
||||||
|
command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
edit-sources)
|
||||||
|
COMPREPLY=( $( compgen -W '$( command ls $sourcesdir )' \
|
||||||
|
-- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
moo)
|
||||||
|
COMPREPLY=( $( compgen -W 'moo' \
|
||||||
|
-- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# no command yet, show what commands we have
|
||||||
|
if [ "$command" = "" ]; then
|
||||||
|
COMPREPLY=( $( compgen -W '${COMMANDS[@]}' -- "$cur" ) )
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
} &&
|
||||||
|
complete -F _aptss aptss
|
||||||
|
|
||||||
|
# ex: ts=4 sw=4 et filetype=sh
|
||||||
@@ -21,11 +21,14 @@ tool.path = /opt/durapps/$${TARGET}/bin
|
|||||||
qm.files += translations/*.qm
|
qm.files += translations/*.qm
|
||||||
qm.path = /usr/share/spark-store/translations
|
qm.path = /usr/share/spark-store/translations
|
||||||
|
|
||||||
preferences.files += pkg/etc/apt/preferences.d/sparkstore
|
#preferences.files += pkg/etc/apt/preferences.d/sparkstore
|
||||||
preferences.path = /etc/apt/preferences.d
|
#preferences.path = /etc/apt/preferences.d
|
||||||
|
|
||||||
sourceslist.files += pkg/etc/apt/sources.list.d/sparkstore.list
|
#sourceslist.files += pkg/etc/apt/sources.list.d/sparkstore.list
|
||||||
sourceslist.path = /etc/apt/sources.list.d
|
#sourceslist.path = /etc/apt/sources.list.d
|
||||||
|
|
||||||
|
bash_completion.files += pkg/usr/share/bash-completion/completions/aptss
|
||||||
|
bash_completion.path = /usr/share/bash-completion/completions
|
||||||
|
|
||||||
desktop.files += pkg/usr/share/applications/spark-store.desktop
|
desktop.files += pkg/usr/share/applications/spark-store.desktop
|
||||||
desktop.path = /usr/share/applications
|
desktop.path = /usr/share/applications
|
||||||
@@ -49,9 +52,9 @@ INSTALLS += \
|
|||||||
qm \
|
qm \
|
||||||
desktop \
|
desktop \
|
||||||
icon \
|
icon \
|
||||||
sourceslist \
|
|
||||||
preferences \
|
preferences \
|
||||||
tmp \
|
tmp \
|
||||||
service
|
service \
|
||||||
|
bash_completion
|
||||||
# polkit-1
|
# polkit-1
|
||||||
# 暂时不添加
|
# 暂时不添加
|
||||||
|
|||||||
@@ -1,14 +1,8 @@
|
|||||||
#include "downloadworker.h"
|
#include "downloadworker.h"
|
||||||
#include <QEventLoop>
|
#include <QEventLoop>
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QNetworkRequest>
|
|
||||||
#include <QNetworkReply>
|
|
||||||
#include <QThread>
|
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
#include <QFileInfo>
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QElapsedTimer>
|
|
||||||
#include <QtConcurrent>
|
#include <QtConcurrent>
|
||||||
|
|
||||||
DownloadController::DownloadController(QObject *parent)
|
DownloadController::DownloadController(QObject *parent)
|
||||||
@@ -36,14 +30,49 @@ void DownloadController::setFilename(QString filename)
|
|||||||
this->filename = filename;
|
this->filename = filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
void timeSleeper(int time)
|
|
||||||
|
bool checkMeatlink(QString metaUrl)
|
||||||
{
|
{
|
||||||
QElapsedTimer t1;
|
QFile metaStatus("/tmp/spark-store/metaStatus.txt");
|
||||||
t1.start();
|
if (metaStatus.exists())
|
||||||
while(t1.elapsed()<time);
|
{
|
||||||
return;
|
metaStatus.remove();
|
||||||
|
}
|
||||||
|
system("curl -I -s --connect-timeout 5 " + metaUrl.toUtf8() + " -w %{http_code} |tail -n1 > /tmp/spark-store/metaStatus.txt");
|
||||||
|
if (metaStatus.open(QFile::ReadOnly) && QString(metaStatus.readAll()).toUtf8() == "200")
|
||||||
|
{
|
||||||
|
metaStatus.remove();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gennerateDomain(QVector<QString> &domains)
|
||||||
|
{
|
||||||
|
QFile serverList(QDir::homePath().toUtf8() + "/.config/spark-store/server.list");
|
||||||
|
if (serverList.open(QFile::ReadOnly))
|
||||||
|
{
|
||||||
|
QStringList list = QString(serverList.readAll()).trimmed().split("\n");
|
||||||
|
qDebug() << list << list.size();
|
||||||
|
domains.clear();
|
||||||
|
|
||||||
|
for (int i = 0; i < list.size(); i++)
|
||||||
|
{
|
||||||
|
if (list.at(i).contains("镜像源 Download only") && i + 1 < list.size())
|
||||||
|
{
|
||||||
|
for (int j = i + 1; j < list.size(); j++)
|
||||||
|
{
|
||||||
|
domains.append(list.at(j));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (domains.size() == 0)
|
||||||
|
{
|
||||||
|
domains.append("d.store.deepinos.org.cn");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 开始下载
|
* @brief 开始下载
|
||||||
@@ -59,54 +88,40 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QtConcurrent::run([=]()
|
QtConcurrent::run([=]()
|
||||||
{
|
{
|
||||||
QFile serverList(QDir::homePath().toUtf8() + "/.config/spark-store/server.list");
|
QString metaUrl = url + ".metalink";
|
||||||
if (serverList.open(QFile::ReadOnly))
|
qDebug() << "metalink" << metaUrl;
|
||||||
{
|
bool useMetalink = false;
|
||||||
QStringList list = QString(serverList.readAll()).trimmed().split("\n");
|
if (checkMeatlink(metaUrl)){
|
||||||
qDebug() << list << list.size();
|
useMetalink = true;
|
||||||
domains.clear();
|
qDebug() << "useMetalink:" << useMetalink;
|
||||||
|
}else{
|
||||||
for (int i = 0; i < list.size(); i++)
|
gennerateDomain(domains);
|
||||||
{
|
// qDebug() << domains << domains.size();
|
||||||
if (list.at(i).contains("镜像源 Download only") && i + 1 < list.size())
|
|
||||||
{
|
|
||||||
for (int j = i + 1; j < list.size(); j++)
|
|
||||||
{
|
|
||||||
system("curl -I -s --connect-timeout 5 https://" + list.at(j).toUtf8() + "/dcs-repo.gpg-key.asc -w %{http_code} |tail -n1 > /tmp/spark-store/cdnStatus.txt");
|
|
||||||
QFile cdnStatus("/tmp/spark-store/cdnStatus.txt");
|
|
||||||
if (cdnStatus.open(QFile::ReadOnly) && QString(cdnStatus.readAll()).toUtf8() == "200")
|
|
||||||
{
|
|
||||||
qDebug() << list.at(j);
|
|
||||||
domains.append(list.at(j));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (domains.size() == 0)
|
|
||||||
{
|
|
||||||
domains.append("d.store.deepinos.org.cn");
|
|
||||||
}
|
|
||||||
qDebug() << domains << domains.size();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QDir tmpdir("/tmp/spark-store/");
|
|
||||||
QString aria2Command = "-d";
|
QString aria2Command = "-d";
|
||||||
QString aria2Urls = "";
|
QString aria2Urls = "";
|
||||||
QString aria2Verbose = "--summary-interval=1";
|
QString aria2Verbose = "--summary-interval=1";
|
||||||
QString aria2Threads = "-s " + QString::number(domains.size());
|
QString aria2Threads = "--split=2"; // 仅使用最快的两个镜像源
|
||||||
QString aria2NoConfig = "--no-conf";
|
QString aria2NoConfig = "--no-conf";
|
||||||
|
QString aria2NoSeeds = "--seed-time=0";
|
||||||
QStringList command;
|
QStringList command;
|
||||||
QString downloadDir = "/tmp/spark-store/";
|
QString downloadDir = "/tmp/spark-store/";
|
||||||
|
QString aira2URLSelector = "--uri-selector=adaptive";
|
||||||
|
QString aria2StreamPiece = "--stream-piece-selector=default";
|
||||||
|
QString aria2ConnectionPerServer = "--max-connection-per-server=4";
|
||||||
|
|
||||||
|
if (useMetalink){
|
||||||
for (int i = 0; i < domains.size(); i++)
|
command.append(metaUrl.toUtf8());
|
||||||
{
|
|
||||||
command.append(replaceDomain(url, domains.at(i)).toUtf8());
|
|
||||||
aria2Urls += replaceDomain(url, domains.at(i));
|
|
||||||
aria2Urls += " ";
|
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
for (int i = 0; i < domains.size(); i++)
|
||||||
|
{
|
||||||
|
command.append(replaceDomain(url, domains.at(i)).toUtf8());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
qint64 downloadSizeRecord = 0;
|
qint64 downloadSizeRecord = 0;
|
||||||
QString speedInfo = "";
|
QString speedInfo = "";
|
||||||
@@ -114,8 +129,14 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
command.append(aria2Command.toUtf8());
|
command.append(aria2Command.toUtf8());
|
||||||
command.append(downloadDir.toUtf8());
|
command.append(downloadDir.toUtf8());
|
||||||
command.append(aria2Verbose.toUtf8());
|
command.append(aria2Verbose.toUtf8());
|
||||||
command.append(aria2Threads.toUtf8());
|
|
||||||
command.append(aria2NoConfig.toUtf8());
|
command.append(aria2NoConfig.toUtf8());
|
||||||
|
command.append(aria2Threads.toUtf8());
|
||||||
|
command.append(aira2URLSelector.toUtf8());
|
||||||
|
command.append(aria2StreamPiece.toUtf8());
|
||||||
|
command.append(aria2ConnectionPerServer.toUtf8());
|
||||||
|
if (useMetalink){
|
||||||
|
command.append(aria2NoSeeds.toUtf8());
|
||||||
|
}
|
||||||
qDebug() << command;
|
qDebug() << command;
|
||||||
auto cmd = new QProcess();
|
auto cmd = new QProcess();
|
||||||
cmd->setProcessChannelMode(QProcess::MergedChannels);
|
cmd->setProcessChannelMode(QProcess::MergedChannels);
|
||||||
@@ -128,10 +149,9 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
[&]()
|
[&]()
|
||||||
{
|
{
|
||||||
//通过读取输出计算下载速度
|
//通过读取输出计算下载速度
|
||||||
QFileInfo info(tmpdir.absoluteFilePath(filename));
|
|
||||||
QString message = cmd->readAllStandardOutput().data();
|
QString message = cmd->readAllStandardOutput().data();
|
||||||
message = message.replace(" ", "").replace("\n", "").replace("-", "");
|
// qDebug() << message;
|
||||||
message = message.replace("*", "").replace("=", "");
|
message = message.replace(" ", "");
|
||||||
QStringList list;
|
QStringList list;
|
||||||
qint64 downloadSize = 0;
|
qint64 downloadSize = 0;
|
||||||
int downloadSizePlace1 = message.indexOf("(");
|
int downloadSizePlace1 = message.indexOf("(");
|
||||||
@@ -145,15 +165,15 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
{
|
{
|
||||||
int percentInfoNumber = percentInfo.toUInt();
|
int percentInfoNumber = percentInfo.toUInt();
|
||||||
|
|
||||||
downloadSize = (percentInfoNumber + 1) * fileSize / 100;
|
downloadSize = percentInfoNumber * fileSize / 100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (speedPlace1 != -1 && speedPlace2 != -1)
|
if (speedPlace1 != -1 && speedPlace2 != -1 && speedPlace2 - speedPlace1 <= 15)
|
||||||
{
|
{
|
||||||
speedInfo = message.mid(speedPlace1 + 3, speedPlace2 - speedPlace1 - 3);
|
speedInfo = message.mid(speedPlace1 + 3, speedPlace2 - speedPlace1 - 3);
|
||||||
speedInfo += "/s";
|
speedInfo += "/s";
|
||||||
}
|
}
|
||||||
qDebug() << percentInfo << speedInfo;
|
// qDebug() << percentInfo << speedInfo;
|
||||||
if (downloadSize >= downloadSizeRecord)
|
if (downloadSize >= downloadSizeRecord)
|
||||||
{
|
{
|
||||||
downloadSizeRecord = downloadSize;
|
downloadSizeRecord = downloadSize;
|
||||||
@@ -182,8 +202,7 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
emit downloadFinished();
|
emit downloadFinished(); });
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -199,30 +218,8 @@ void DownloadController::stopDownload()
|
|||||||
|
|
||||||
qint64 DownloadController::getFileSize(const QString &url)
|
qint64 DownloadController::getFileSize(const QString &url)
|
||||||
{
|
{
|
||||||
QEventLoop event;
|
// 已经无需使用 qtnetwork 再获取 filesize,完全交给 aria2 来计算进度。 为保证兼容性,故保留此函数。
|
||||||
QNetworkAccessManager requestManager;
|
qint64 fileSize = 10000;
|
||||||
QNetworkRequest request;
|
|
||||||
request.setUrl(QUrl(url));
|
|
||||||
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
|
||||||
QNetworkReply *reply = requestManager.head(request);
|
|
||||||
connect(reply, static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
|
|
||||||
[this, reply](QNetworkReply::NetworkError error)
|
|
||||||
{
|
|
||||||
if (error != QNetworkReply::NoError)
|
|
||||||
{
|
|
||||||
emit errorOccur(reply->errorString());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
connect(reply, &QNetworkReply::finished, &event, &QEventLoop::quit);
|
|
||||||
event.exec();
|
|
||||||
|
|
||||||
qint64 fileSize = 0;
|
|
||||||
if (reply->rawHeader("Accept-Ranges") == QByteArrayLiteral("bytes") && reply->hasRawHeader(QString("Content-Length").toLocal8Bit()))
|
|
||||||
{
|
|
||||||
fileSize = reply->header(QNetworkRequest::ContentLengthHeader).toUInt();
|
|
||||||
}
|
|
||||||
qDebug() << "文件大小为:" << fileSize;
|
|
||||||
reply->deleteLater();
|
|
||||||
return fileSize;
|
return fileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
|
|||||||
DAboutDialog dialog;
|
DAboutDialog dialog;
|
||||||
a.setAboutDialog(&dialog);
|
a.setAboutDialog(&dialog);
|
||||||
dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
|
dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
|
||||||
dialog.setVersion(DApplication::buildVersion("Version 3.1.4-1"));
|
dialog.setVersion(DApplication::buildVersion("Version 3.1.5-5"));
|
||||||
dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo
|
dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo
|
||||||
dialog.setProductName(QLabel::tr("Spark Store"));
|
dialog.setProductName(QLabel::tr("Spark Store"));
|
||||||
dialog.setDescription(
|
dialog.setDescription(
|
||||||
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
|
|||||||
a.setOrganizationName("spark-union");
|
a.setOrganizationName("spark-union");
|
||||||
a.setOrganizationDomain("https://www.deepinos.org/");
|
a.setOrganizationDomain("https://www.deepinos.org/");
|
||||||
a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文
|
a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文
|
||||||
a.setApplicationVersion(DApplication::buildVersion("3.1.4-1"));
|
a.setApplicationVersion(DApplication::buildVersion("3.1.5-5"));
|
||||||
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
|
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
|
||||||
a.setApplicationDescription(
|
a.setApplicationDescription(
|
||||||
QObject::tr(
|
QObject::tr(
|
||||||
|
|||||||
0
tool/apt-fast-conf/sources.list.d/.keep
Normal file
0
tool/apt-fast-conf/sources.list.d/.keep
Normal file
@@ -1 +0,0 @@
|
|||||||
deb [by-hash=force] https://d.store.deepinos.org.cn /
|
|
||||||
73
tool/aptss
Executable file
73
tool/aptss
Executable file
@@ -0,0 +1,73 @@
|
|||||||
|
#/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "install" ] || [ "$1" = "upgrade" ] || [ "$1" = "full-upgrade" ] || [ "$1" = "download" ] ; then
|
||||||
|
|
||||||
|
if [ ! -e "/tmp/aptss-conf/apt-fast.conf" ];then
|
||||||
|
###刷新apt-fast配置
|
||||||
|
mkdir -p /tmp/aptss-conf/
|
||||||
|
echo "从服务器获取配置和镜像列表..."
|
||||||
|
echo "Getting server and mirror lists..."
|
||||||
|
echo
|
||||||
|
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
|
chmod -R 755 /tmp/aptss-conf
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
DEPEND=`which apt-fast`
|
||||||
|
if [ "$DEPEND" = "" ] ; then
|
||||||
|
echo "未安装依赖:apt-fast 开始安装"
|
||||||
|
sudo aptss ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||||
|
fi
|
||||||
|
|
||||||
|
###执行
|
||||||
|
bwrap --dev-bind / / \
|
||||||
|
--bind '/tmp/aptss-conf/apt-fast.conf' /etc/apt-fast.conf \
|
||||||
|
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||||
|
apt-fast "$@" --allow-downgrades
|
||||||
|
|
||||||
|
|
||||||
|
elif [ "$1" = "ssupdate" ];then
|
||||||
|
|
||||||
|
mkdir -p /tmp/aptss-conf/
|
||||||
|
echo "从服务器获取配置和镜像列表..."
|
||||||
|
echo "Getting server and mirror lists..."
|
||||||
|
echo
|
||||||
|
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
|
chmod -R 755 /tmp/aptss-conf
|
||||||
|
|
||||||
|
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||||
|
### 额外一份拿来给aptss自动补全用
|
||||||
|
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||||
|
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o Dir::Cache="/etc/aptss/" -o APT::Get::List-Cleanup="0"
|
||||||
|
#只更新星火源
|
||||||
|
|
||||||
|
elif [ "$1" = "update" ];then
|
||||||
|
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p /tmp/aptss-conf/
|
||||||
|
echo "从服务器获取配置和镜像列表..."
|
||||||
|
echo "Getting server and mirror lists..."
|
||||||
|
echo
|
||||||
|
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
|
chmod -R 755 /tmp/aptss-conf
|
||||||
|
### 额外一份拿来给aptss自动补全用
|
||||||
|
bwrap --dev-bind / / \
|
||||||
|
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||||
|
apt "$@" -o APT::Get::List-Cleanup="0"
|
||||||
|
|
||||||
|
bwrap --dev-bind / / \
|
||||||
|
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||||
|
apt "$@" -o APT::Get::List-Cleanup="0" -o Dir::Cache="/etc/aptss/"
|
||||||
|
|
||||||
|
else
|
||||||
|
bwrap --dev-bind / / \
|
||||||
|
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||||
|
apt "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
41
tool/spark-store.asc
Normal file
41
tool/spark-store.asc
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
44jA/CTiR2VibEJ22D0=
|
||||||
|
=mGFM
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#/bin/bash
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$1" = "install" ] || [ "$1" = "upgrade" ] || [ "$1" = "full-upgrade" ] || [ "$1" = "download" ] ; then
|
|
||||||
|
|
||||||
###刷新apt-fast配置
|
|
||||||
mkdir -p /tmp/ss-apt-fast-conf/sources.list.d
|
|
||||||
# 创建文件夹
|
|
||||||
echo "从服务器获取配置和镜像列表..."
|
|
||||||
echo "Getting server and mirror lists..."
|
|
||||||
echo
|
|
||||||
curl --progress-bar -o /tmp/ss-apt-fast-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
|
||||||
chmod -R 755 /tmp/ss-apt-fast-conf
|
|
||||||
|
|
||||||
|
|
||||||
DEPEND=`which apt-fast`
|
|
||||||
if [ "$DEPEND" = "" ] ; then
|
|
||||||
echo "未安装依赖:apt-fast 开始安装"
|
|
||||||
sudo ss-apt-fast ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
|
||||||
fi
|
|
||||||
###执行安装
|
|
||||||
bwrap --dev-bind / / \
|
|
||||||
--bind '/tmp/ss-apt-fast-conf/apt-fast.conf' /etc/apt-fast.conf \
|
|
||||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
|
||||||
apt-fast "$@"
|
|
||||||
|
|
||||||
rm -rf /tmp/ss-apt-fast-conf
|
|
||||||
|
|
||||||
elif [ "$1" = "ssupdate" ];then
|
|
||||||
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
|
||||||
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
|
||||||
#只更新星火源
|
|
||||||
|
|
||||||
else
|
|
||||||
bwrap --dev-bind / / \
|
|
||||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
|
||||||
apt "$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
@@ -50,22 +50,22 @@ if [ "$(id -u)" != "0" ];then
|
|||||||
IS_INSTALLED=`which apt-fast`
|
IS_INSTALLED=`which apt-fast`
|
||||||
if [ "$IS_INSTALLED" = "" ] ; then
|
if [ "$IS_INSTALLED" = "" ] ; then
|
||||||
echo "未安装依赖:apt-fast 开始安装"
|
echo "未安装依赖:apt-fast 开始安装"
|
||||||
echo "$upass" | sudo -S /usr/local/bin/ss-apt-fast ssupdate && echo "$upass" | sudo -S bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
echo "$upass" | sudo -S aptss ssupdate && echo "$upass" | sudo -S bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
||||||
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
echo "$upass" | sudo -S dpkg -i $1 || sudo /usr/local/bin/ss-apt-fast ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
echo "$upass" | sudo -S dpkg -i $1 || sudo aptss ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
||||||
echo "检测到apt-fast,使用/usr/local/bin/ss-apt-fast进行多线程下载加速"
|
echo "检测到apt-fast,使用aptss进行多线程下载加速"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
echo "$upass" | sudo -S dpkg -i $1 || sudo /usr/local/bin/ss-apt-fast ssupdate && sudo /usr/local/bin/ss-apt-fast install -yf
|
echo "$upass" | sudo -S dpkg -i $1 || sudo aptss ssupdate && sudo aptss install -yf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@@ -78,19 +78,19 @@ else
|
|||||||
IS_INSTALLED=`which apt-fast`
|
IS_INSTALLED=`which apt-fast`
|
||||||
if [ "$IS_INSTALLED" = "" ] ; then
|
if [ "$IS_INSTALLED" = "" ] ; then
|
||||||
echo "未安装依赖:apt-fast 开始安装"
|
echo "未安装依赖:apt-fast 开始安装"
|
||||||
/usr/local/bin/ss-apt-fast ssupdate && bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
aptss ssupdate && bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
||||||
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
dpkg -i $1 || /usr/local/bin/ss-apt-fast ssupdate && bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
dpkg -i $1 || aptss ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
||||||
echo "检测到apt-fast,使用/usr/local/bin/ss-apt-fast进行多线程下载加速"
|
echo "检测到apt-fast,使用aptss进行多线程下载加速"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
dpkg -i $1 || /usr/local/bin/ss-apt-fast ssupdate && /usr/local/bin/ss-apt-fast install -yf
|
dpkg -i $1 || aptss ssupdate && aptss install -yf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Encoding=UTF-8
|
|
||||||
Type=Application
|
|
||||||
Exec=/opt/durapps/spark-store/bin/update-upgrade/ss-update-notify.sh
|
|
||||||
Name=spark-update-notifier
|
|
||||||
@@ -2,13 +2,51 @@
|
|||||||
|
|
||||||
echo "以上可升级,是否升级?[y/n]"
|
echo "以上可升级,是否升级?[y/n]"
|
||||||
read yes_or_no
|
read yes_or_no
|
||||||
if [ "$yes_or_no" = "y" ];then
|
if [ "$yes_or_no" = "y" ];then ###这是确定是否同意
|
||||||
mkdir -p /tmp/ss-apt-fast-conf/sources.list.d
|
|
||||||
|
echo "获取更新列表..."
|
||||||
|
PKG_LIST="$(bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" | awk 'BEGIN {FS="/"} {print $1}' | awk NR\>1)"
|
||||||
|
|
||||||
|
|
||||||
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list ss-apt-fast upgrade -y -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
isuos=`cat /etc/os-release | grep UnionTech`
|
||||||
|
if [ "$isuos" != "" ]; then ###这是确定是否为UOS 如果是
|
||||||
|
echo "UOS中系统依赖无法使用第三方下载工具,使用apt-fast下载本体"
|
||||||
|
|
||||||
|
cd /var/cache/apt/archives
|
||||||
|
for PKG_NAME in $PKG_LIST;
|
||||||
|
do
|
||||||
|
echo "$PKG_NAME 正在下载..."
|
||||||
|
sudo aptss download "$PKG_NAME" -y >/dev/null 2>&1;
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "----开始安装"
|
||||||
|
for PKG_NAME in $PKG_LIST;
|
||||||
|
do
|
||||||
|
echo "$PKG_NAME 正在更新..."
|
||||||
|
if sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install "$PKG_NAME" -y >/dev/null 2>&1;
|
||||||
|
then
|
||||||
|
echo "$PKG_NAME 已更新"
|
||||||
|
else
|
||||||
|
echo "WARNING: $PKG_NAME 无法更新"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
else
|
|
||||||
exit
|
else ###这是确定是否为UOS,如果不是
|
||||||
fi
|
|
||||||
|
for PKG_NAME in $PKG_LIST;
|
||||||
|
do
|
||||||
|
echo "$PKG_NAME 正在更新..."
|
||||||
|
if sudo aptss install "$PKG_NAME" -y >/dev/null 2>&1;
|
||||||
|
then
|
||||||
|
echo "$PKG_NAME 已更新"
|
||||||
|
else
|
||||||
|
echo "WARNING: $PKG_NAME 无法更新"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
fi ###这是确定是否为UOS
|
||||||
|
|
||||||
|
fi ###这是确定是否同意
|
||||||
@@ -51,29 +51,23 @@ case $option in
|
|||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
echo "执行以下操作需要授权..."
|
echo "执行以下操作需要授权..."
|
||||||
if [ -f /etc/xdg/autostart/spark-update-notifier.desktop ];then
|
if [ -e /etc/systemd/system/multi-user.target.wants/spark-update-notifier.service ];then
|
||||||
echo "---检测到已经启动了自动更新检测,执行关闭"
|
echo "---检测到已经启动了自动更新检测,执行关闭"
|
||||||
sudo systemctl disable spark-update-notifier
|
sudo systemctl disable spark-update-notifier
|
||||||
sudo rm /etc/xdg/autostart/spark-update-notifier.desktop
|
|
||||||
sleep 3
|
sleep 3
|
||||||
reset
|
reset
|
||||||
else
|
else
|
||||||
echo "---未检测到自动更新检测,执行启动"
|
echo "---未检测到自动更新检测,执行启动"
|
||||||
sudo systemctl enable spark-update-notifier
|
sudo systemctl enable spark-update-notifier
|
||||||
sudo service spark-update-notifier start
|
sudo service spark-update-notifier start
|
||||||
# ln -s /opt/durapps/spark-store/bin/update-upgrade/autostart/spark-update-notifier.desktop $XDG_CONFIG_HOME/autostart
|
|
||||||
#
|
|
||||||
sudo ln -s /opt/durapps/spark-store/bin/update-upgrade/autostart/spark-update-notifier.desktop /etc/xdg/autostart
|
|
||||||
/opt/durapps/spark-store/bin/update-upgrade/ss-update-notify.sh now
|
|
||||||
sleep 3
|
sleep 3
|
||||||
reset
|
reset
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
2)
|
2)
|
||||||
echo "请注意:如果有些更新需要从系统获取更多依赖,你将需要手动操作 sudo ss-apt-fast upgrade"
|
|
||||||
echo "执行以下操作需要授权..."
|
echo "执行以下操作需要授权..."
|
||||||
sudo ss-apt-fast ssupdate
|
sudo aptss ssupdate
|
||||||
/opt/durapps/spark-store/bin/update-upgrade/ss-upgrade-list.sh
|
/opt/durapps/spark-store/bin/update-upgrade/ss-upgrade-list.sh
|
||||||
/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh
|
/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh
|
||||||
echo "---请按回车返回"
|
echo "---请按回车返回"
|
||||||
|
|||||||
@@ -1,9 +1,19 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
rm -rf /tmp/spark-store-updatenum/number
|
|
||||||
LANG=en.US
|
LANG=en.US
|
||||||
|
|
||||||
#!/bin/bash
|
function notify-send() {
|
||||||
|
#Detect the name of the display in use
|
||||||
|
local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
|
||||||
|
|
||||||
|
#Detect the user using such display
|
||||||
|
local user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1)
|
||||||
|
|
||||||
|
#Detect the id of the user
|
||||||
|
local uid=$(id -u $user)
|
||||||
|
|
||||||
|
sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
|
||||||
|
}
|
||||||
|
|
||||||
#检测网络链接畅通
|
#检测网络链接畅通
|
||||||
function network()
|
function network()
|
||||||
@@ -39,7 +49,7 @@ fi
|
|||||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||||
# 每日更新星火源文件
|
# 每日更新星火源文件
|
||||||
|
|
||||||
updatetext=`ss-apt-fast ssupdate`
|
updatetext=`aptss ssupdate`
|
||||||
|
|
||||||
|
|
||||||
mkdir -p /tmp/spark-store-updatenum/
|
mkdir -p /tmp/spark-store-updatenum/
|
||||||
@@ -47,14 +57,14 @@ mkdir -p /tmp/spark-store-updatenum/
|
|||||||
|
|
||||||
isupdate=`echo ${updatetext: -5}`
|
isupdate=`echo ${updatetext: -5}`
|
||||||
if [ "$isupdate" = "date." ];then
|
if [ "$isupdate" = "date." ];then
|
||||||
sudo echo "0" > /tmp/spark-store-updatenum/number
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
update_app_number=`echo ${updatetext%package*} #从右向左截取第一个 src 后的字符串`
|
update_app_number=`echo ${updatetext%package*} #从右向左截取第一个 src 后的字符串`
|
||||||
update_app_number=`echo ${update_app_number##*information...}`
|
update_app_number=`echo ${update_app_number##*information...}`
|
||||||
sudo echo "$update_app_number" > /tmp/spark-store-updatenum/number
|
|
||||||
|
|
||||||
|
|
||||||
|
notify-send -i spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理"
|
||||||
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
isexistnumber=0
|
|
||||||
if [ "$1" = "now" ];then
|
|
||||||
if [ -f /tmp/spark-store-updatenum/number ];then
|
|
||||||
update_app_number=`cat /tmp/spark-store-updatenum/number`
|
|
||||||
echo "$update_app_number"
|
|
||||||
if [ "$update_app_number" = "0" ];then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
notify-send -i spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理"
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
until [ $isexistnumber -eq 1 ];do
|
|
||||||
if [ -f /tmp/spark-store-updatenum/number ];then
|
|
||||||
sleep 10
|
|
||||||
update_app_number=`cat /tmp/spark-store-updatenum/number`
|
|
||||||
echo "$update_app_number"
|
|
||||||
if [ "$update_app_number" = "0" ];then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
notify-send -i spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理"
|
|
||||||
isexistnumber=1
|
|
||||||
fi
|
|
||||||
sleep 10
|
|
||||||
done
|
|
||||||
@@ -3,4 +3,4 @@ set -e
|
|||||||
|
|
||||||
|
|
||||||
echo "---可更新的应用有:"
|
echo "---可更新的应用有:"
|
||||||
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
#!/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 "如果没有安装,则无法使用。请确认安装后再进行下一步操作"
|
|
||||||
sleep 3
|
|
||||||
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 -e account
|
|
||||||
echo "请在此行输入您的UOS账号密码"
|
|
||||||
read -e passwd
|
|
||||||
echo "即将安装证书,请在弹出的窗口安装"
|
|
||||||
cert-tool -username="$account" -password="$passwd"
|
|
||||||
done
|
|
||||||
echo "检测到已经生成过证书,准备签名"
|
|
||||||
fi
|
|
||||||
#这个if是判断是否已经有证书
|
|
||||||
|
|
||||||
unset account
|
|
||||||
unset passwd
|
|
||||||
unset renyijian
|
|
||||||
|
|
||||||
debpath=""
|
|
||||||
cd /tmp
|
|
||||||
|
|
||||||
until [ -f "$debpath" ] ; do
|
|
||||||
if [ ! $1 ] ; then
|
|
||||||
echo "没有检测到参数,以交互式安装运行"
|
|
||||||
echo "请输入deb文件的绝对路径或直接拖入deb文件(仅限支持的文件管理器,比如深度文管),结束后回车"
|
|
||||||
echo "生成的签名过的deb将保存在/tmp/signed_deb"
|
|
||||||
read debpath
|
|
||||||
else
|
|
||||||
echo "参数存在,直接开始签名\n生成的签名过的deb保存在/tmp/signed_deb"
|
|
||||||
debpath="$1"
|
|
||||||
echo "读取到的deb路径为:$debpath"
|
|
||||||
fi
|
|
||||||
debpath=`echo "$debpath" | sed $'s/\'//g'`
|
|
||||||
echo "去除可能的单引号后得到:$debpath"
|
|
||||||
|
|
||||||
if [ -f $debpath ] ; then
|
|
||||||
echo "文件有效,开始签名"
|
|
||||||
echo "------------以下为签名工具输出------------"
|
|
||||||
deepin-elf-sign-deb "$debpath"
|
|
||||||
echo "------------签名工具输出已结束------------"
|
|
||||||
echo "签名结束,启动深度软件包管理器"
|
|
||||||
else
|
|
||||||
echo "路径出错,请确认你输入了正确的路径!"
|
|
||||||
sleep 3
|
|
||||||
clear
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
file_name=$(basename "$debpath")
|
|
||||||
|
|
||||||
echo "--------以下为深度软件包安装器输出--------"
|
|
||||||
deepin-deb-installer "/tmp/signed_deb/$file_name"
|
|
||||||
echo "--------深度软件包安装器输出已结束--------"
|
|
||||||
echo "删除临时文件"
|
|
||||||
rm /tmp/signed_deb/$file_name
|
|
||||||
142
tool/ussremove
142
tool/ussremove
@@ -1,142 +0,0 @@
|
|||||||
#!/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
|
|
||||||
Reference in New Issue
Block a user