change-to-oyo
This commit is contained in:
48
README.md
48
README.md
@@ -1,7 +1,7 @@
|
|||||||
# ss-get
|
# oyo
|
||||||
|
|
||||||
## 介绍
|
## 介绍
|
||||||
ss-get规划
|
oyo规划
|
||||||
|
|
||||||
## 软件架构
|
## 软件架构
|
||||||
|
|
||||||
@@ -14,16 +14,16 @@ app.amber
|
|||||||
```
|
```
|
||||||
pkgname=包名
|
pkgname=包名
|
||||||
version=版本
|
version=版本
|
||||||
depends=ss-get(>=version),其他deb包依赖(这里建议对ss-get额外增加一个依赖,确保是某版本及以上的ss-get以确保有功能)
|
depends=oyo(>=version),其他deb包依赖(这里建议对oyo额外增加一个依赖,确保是某版本及以上的oyo以确保有功能)
|
||||||
architecture=架构
|
architecture=架构
|
||||||
>>>>boom>>>>
|
>>>>boom>>>>
|
||||||
description=将会在ss-get search显示的描述
|
description=将会在oyo search显示的描述
|
||||||
maintainer= 名字<联系方式>,将会在echo段之后显示
|
maintainer= 名字<联系方式>,将会在echo段之后显示
|
||||||
hints_when_install=会在安装时显示的文本
|
hints_when_install=会在安装时显示的文本
|
||||||
get-method= git/download/script
|
get-method= git/download/script
|
||||||
source=目标地址。若方法为git,则会执行git clone到/tmp/ss-get-build,然后执行dpkg -b /tmp/ss-get-build/pkgname ,所以应当把git url设置成包名;若方法为download,则会wget下载指定链接到/tmp/ss-get-build;若方法为script,则会wget到/tmp/ss-get-build/script,然后执行。
|
source=目标地址。若方法为git,则会执行git clone到/tmp/oyo-build,然后执行dpkg -b /tmp/oyo-build/pkgname ,所以应当把git url设置成包名;若方法为download,则会wget下载指定链接到/tmp/oyo-build;若方法为script,则会wget到/tmp/oyo-build/script,然后执行。
|
||||||
```
|
```
|
||||||
特别地,对于script包,预制参数1为一个目录,是把deb包保存的目录。在非--download条件下,这个参数将会是/tmp/ss-get-build。script包将会被严格审核后才能入库
|
特别地,对于script包,预制参数1为一个目录,是把deb包保存的目录。在非--download条件下,这个参数将会是/tmp/oyo-build。script包将会被严格审核后才能入库
|
||||||
|
|
||||||
applist.amber
|
applist.amber
|
||||||
第一行固定 i-love-amber-forever
|
第一行固定 i-love-amber-forever
|
||||||
@@ -34,17 +34,17 @@ applist.amber
|
|||||||
### 客户端
|
### 客户端
|
||||||
#### 会在所有操作执行之前执行一次更新applist.amber
|
#### 会在所有操作执行之前执行一次更新applist.amber
|
||||||
|
|
||||||
#### ss-get --search pkgname 使用grep寻找package:$1,如果有,则sed寻找所在行,切掉前一行,然后打印第一行pkgname=后的内容+第二行version=后的内容,然后切掉后面第一个`>>>>boom>>>>`之前的内容,打印第一行description=后的内容,接着打印--------------来分隔,然后切掉后面第一个`###baron-bunny###`之前的内容,继续循环,直到sed无输出.
|
#### oyo --search pkgname 使用grep寻找package:$1,如果有,则sed寻找所在行,切掉前一行,然后打印第一行pkgname=后的内容+第二行version=后的内容,然后切掉后面第一个`>>>>boom>>>>`之前的内容,打印第一行description=后的内容,接着打印--------------来分隔,然后切掉后面第一个`###baron-bunny###`之前的内容,继续循环,直到sed无输出.
|
||||||
|
|
||||||
计划采用 ss-get-info --search
|
计划采用 oyo-info --search
|
||||||
|
|
||||||
#### ss-get --install pkgname=version pkgname2....
|
#### oyo --install pkgname=version pkgname2....
|
||||||
|
|
||||||
首先判断是否有root权限,如果没有,则退出
|
首先判断是否有root权限,如果没有,则退出
|
||||||
|
|
||||||
##### 查询阶段
|
##### 查询阶段
|
||||||
|
|
||||||
计划使用 模块:ss-get-info
|
计划使用 模块:oyo-info
|
||||||
|
|
||||||
使用grep寻找pkgname=$1,如果有,则sed寻找所在行,切掉前一行。
|
使用grep寻找pkgname=$1,如果有,则sed寻找所在行,切掉前一行。
|
||||||
|
|
||||||
@@ -63,9 +63,9 @@ applist.amber
|
|||||||
|
|
||||||
sed寻找pkgname=$1所在行,切掉前一行,然后比对第二行version=后的内容与version变量。如果不一致,切掉后面第一个`###baron-bunny###`之前的内容,继续循环,直到找到。
|
sed寻找pkgname=$1所在行,切掉前一行,然后比对第二行version=后的内容与version变量。如果不一致,切掉后面第一个`###baron-bunny###`之前的内容,继续循环,直到找到。
|
||||||
|
|
||||||
version=与变量一致后,读取第三行depends,第四行架构,利用此信息在`/tmp/ss-get-build/pkgname`构建一个空包,利用apt-get dryrun测试。如果报错,则提示`pkgname`有依赖问题,无法安装,exit 1;如果不报错,则执行
|
version=与变量一致后,读取第三行depends,第四行架构,利用此信息在`/tmp/oyo-build/pkgname`构建一个空包,利用apt-get dryrun测试。如果报错,则提示`pkgname`有依赖问题,无法安装,exit 1;如果不报错,则执行
|
||||||
|
|
||||||
ss-get-search --appinfo pkgname version
|
oyo-search --appinfo pkgname version
|
||||||
|
|
||||||
预计会设置变量: get-method description maintainer hints_when_install source
|
预计会设置变量: get-method description maintainer hints_when_install source
|
||||||
|
|
||||||
@@ -89,24 +89,24 @@ EOF
|
|||||||
```
|
```
|
||||||
case $get-method in
|
case $get-method in
|
||||||
git)
|
git)
|
||||||
mkdir -p /tmp/ss-get-build
|
mkdir -p /tmp/oyo-build
|
||||||
cd /tmp/ss-get-build
|
cd /tmp/oyo-build
|
||||||
git clone $source
|
git clone $source
|
||||||
cd /tmp/ss-get-build/pkgname
|
cd /tmp/oyo-build/pkgname
|
||||||
dpkg -b . ../
|
dpkg -b . ../
|
||||||
;;
|
;;
|
||||||
download)
|
download)
|
||||||
mkdir -p /tmp/ss-get-build
|
mkdir -p /tmp/oyo-build
|
||||||
cd /tmp/ss-get-build
|
cd /tmp/oyo-build
|
||||||
wget -q --show-progress "$source"
|
wget -q --show-progress "$source"
|
||||||
;;
|
;;
|
||||||
script)
|
script)
|
||||||
mkdir -p /tmp/ss-get-build/scripts
|
mkdir -p /tmp/oyo-build/scripts
|
||||||
cd /tmp/ss-get-build/scripts
|
cd /tmp/oyo-build/scripts
|
||||||
wget -q --show-progress "$source"
|
wget -q --show-progress "$source"
|
||||||
target=`echo ${source##*/}`
|
target=`echo ${source##*/}`
|
||||||
chmod +x ./$target.sh
|
chmod +x ./$target.sh
|
||||||
bash ./target.sh /tmp/ss-get-build/
|
bash ./target.sh /tmp/oyo-build/
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -118,20 +118,20 @@ esac
|
|||||||
|
|
||||||
##### 结束循环后
|
##### 结束循环后
|
||||||
|
|
||||||
`dpkg -i /tmp/ss-get-build/*.deb || apt install -yf
|
`dpkg -i /tmp/oyo-build/*.deb || apt install -yf
|
||||||
|
|
||||||
完成安装过程
|
完成安装过程
|
||||||
|
|
||||||
### ss-get --download pkgname=version
|
### oyo --download pkgname=version
|
||||||
|
|
||||||
执行查询阶段,然后对于非script包,执行相关操作得到deb并打包到pwd。
|
执行查询阶段,然后对于非script包,执行相关操作得到deb并打包到pwd。
|
||||||
|
|
||||||
### ss-get --remove/--purge
|
### oyo --remove/--purge
|
||||||
|
|
||||||
转给apt-get处理
|
转给apt-get处理
|
||||||
|
|
||||||
|
|
||||||
## 设计模块:ss-get-info
|
## 设计模块:oyo-info
|
||||||
|
|
||||||
输出内容:
|
输出内容:
|
||||||
* 对于无参数:pkgname version
|
* 对于无参数:pkgname version
|
||||||
|
|||||||
Reference in New Issue
Block a user