python - 通知包版本更改的脚本
问题描述
我在该项目内的特定路径 /file/proj/ 中有构建列表,构建目录列表将像
3.7.0.0.121/
4.2.0.0.200-GA/
4.2.0.0.200/
4.2.1.0.54-GA/
4.2.1.0.54/
4.3.0.0.5-GA/
4.3.0.0.5/
4.4.0.164.403/
4.4.0.165.404/
这里 4.2.1.0.54-GA/ 是我最新的稳定版本, 4.4.0.165.404/ 是最新的频繁发布版本。
在 4.2.1.0.54-GA/ build 我有类似的文件
- proj_4.3.0_App_Update.zip
- proj_4.3.0_App_Update_UI.zip
- dfd.txt
在 4.4.0.165.404/ build 我有类似的文件
- proj_4.4.0_App_Update.zip
- proj_4.4.0_App_Update_UI.zip
- dfd.txt
在这里,我需要将特定文件 proj_4.3.0_App_Update.zip 复制并解压缩到文件夹中的稳定版本和频繁发布版本中和频繁的发布版本我有包的列表,比如
apac_4.3.rpm
buil_3.4.rpm
ssnjx_3.3.rpm
所以我需要比较稳定和频繁发布的 rpm 文件版本,并列出与稳定版本相比更新了哪些新版本
解决方案
你的问题很广泛;目前尚不清楚您是在问以下每个问题,还是只问一些问题:
- 如何“自动”下载最新版本的 zip 文件。
- 如何从这两个文件中仅提取要比较的文件。
- 如何比较两个不同文件夹中的特定子目录。
- 如何显示差异。
以下脚本尝试回答每个问题,并解释每个步骤;希望它有所帮助:
#!/usr/bin/env bash
# exit script immediately on error
set -e
# Example zip files, adjust for your use case
BASE_URL=https://github.com/johnweldon/tiny-profile/archive
LATEST=0.1.9
STABLE=0.1.8
# Create temporary directory to extract into
TEMPDIR=$(mktemp -d)
echo "created ${TEMPDIR}"
# Clean up temporary directory when done. Comment the next line if you
# want to keep the directory
trap "rm -rf $TEMPDIR && echo \"deleted ${TEMPDIR}\"" EXIT
# Download and extract only files needed from LATEST into $TEMPDIR/latest
( cd $TEMPDIR;
curl -L -o latest.zip "$BASE_URL/v$LATEST.zip" && \
unzip latest.zip */bin/* */.vim/ftplugin/* -d latest) >/dev/null 2>&1
# Download and extract only files needed from STABLE into $TEMPDIR/stable
( cd $TEMPDIR;
curl -L -o stable.zip "$BASE_URL/v$STABLE.zip" && \
unzip stable.zip */bin/* */.vim/ftplugin/* -d stable) >/dev/null 2>&1
echo -e "\nBEGIN DIFFERENCES:\n------------------\n\n"
(cd $TEMPDIR;
diff -r stable/tiny-profile-$STABLE/ latest/tiny-profile-$LATEST/ || true)
echo -e "\n\n---------------\nEND DIFFERENCES\n"
推荐阅读
- reporting-services - 在 Excel 中解冻页眉
- ios - 用颤振为苹果手表创建一个应用程序?
- python - 使用python从数据处理中的每一行读取所有数据
- asp.net - member/asp.net MVC 中的建议 在“用户”表中创建用户并获得平台访问权限之前批准用户
- mongodb - Mongodb 1.5 and php 7.2 driver in xampp ubuntu
- django-models - Django REST Framework: slug or serializer
- .net-core - Run dotnet core console app after publish
- reactjs - react-router-hash-link doesn't work if coming from a different route
- validation - form:errors are not displaying errors on JSP in Spring
- java - Why I can't declare an array and then assign value in this fashion?