diff --git a/tools/README.md b/tools/README.md index 95858a8f1d804cb5c0f9c6ea65e442e630303d17..1db5d4c8559634c3d5f9edf10d232614ea558ea4 100644 --- a/tools/README.md +++ b/tools/README.md @@ -4,4 +4,6 @@ - [比较RISC-V与X86_64软件包版本差异](verdiff/README.md) -- [中间仓管理方法及工具](oe-riscv/README.md) \ No newline at end of file +- [中间仓管理方法及工具](oe-riscv/README.md) + +- [OBS 管理命令](docs/obs.md) diff --git a/tools/docs/obs.md b/tools/docs/obs.md new file mode 100644 index 0000000000000000000000000000000000000000..d9bfd62cb71712f9d009c549b03a7cde90404538 --- /dev/null +++ b/tools/docs/obs.md @@ -0,0 +1,53 @@ +# OBS 管理命令 + +以下示例中的PROJECT、REPOSITORY、PACKAGE(单个包名)、PKG-LIST(批量包列表,每行一个)为参数变量。 + +### 获取工程的包列表 +``` +osc api /source/PROJECT | cut -s -f2 -d\" | sed '1d'| sort -s + ``` + +### 批量包enable/disable构建 +以enable为例 +``` +#!/bin/bash + +if [ $# -ne 3 ]; then + echo "Usage: $0 PROJECT REPOSITORY PKG-LIST" + exit 1 +fi + +pkgs=($(cat $3)) + +declare -i i=0 +while [ $i -lt ${#pkgs[@]} ]; do + for (( j=0; j<30 && i<${#pkgs[@]}; i++, j++ )); do + osc api -X POST /source/$1/${pkgs[$i]}?cmd=set_flag\&flag=build\&status=enable\&repository=$2 & + done + wait +done > /dev/null # drop "ok" messages +``` +这个osc命令一次只能操作一个包,为加速,每操作30个包等待一次执行结果。以下有些命令也可套用这一模式。 + +### 触发重构建 +``` +osc rebuild PROJECT [-r REPOSITORY] [PACKAGE] +``` +该命令可按工程、仓库、单包触发重构建。 + +### 触发重新拉取`_service` +``` +osc service remoterun PROJECT PACKAGE +``` + +### 删除生成的rpm包 +``` +osc wipebinaries --all [-r REPOSITORY] PACKAGE +``` + +### 获取包的`_meta` +该文件中有build、publish等设置 +``` +osc api /source/PROJECT/PACKAGE/_meta +``` +