通知软件包版本更改的脚本

时间:2019-01-29 10:23:35

标签: python linux shell

我有特定路径/ 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 /内部版本中,我有类似

的文件
  1. proj_4.3.0_App_Update.zip
  2. proj_4.3.0_App_Update_UI.zip
  3. dfd.txt

在4.4.0.165.404 /内部版本中,我有类似

的文件
  1. proj_4.4.0_App_Update.zip
  2. proj_4.4.0_App_Update_UI.zip
  3. dfd.txt

在这里,我需要复制稳定版本和频繁发布版本中特定文件proj_4.3.0_App_Update.zip并解压缩,例如/ workspace / build 在稳定版本和频繁发布版本的特定路径(/ build / pack / x86_64 /)中解压缩后,我都有类似软件包的列表

apac_4.3.rpm
buil_3.4.rpm
ssnjx_3.3.rpm 

所以我需要比较稳定版本和频繁发布的rpm文件版本,并列出与稳定版本相比更新的新版本

1 个答案:

答案 0 :(得分:1)

您的问题相当广泛;不清楚是要问以下每个问题,还是只问其中一些问题:

  1. 如何“自动”下载最新版本的zip文件。
  2. 如何从这两个文件中仅提取要比较的文件。
  3. 如何比较两个不同文件夹中的特定子目录。
  4. 如何显示差异。

以下脚本尝试回答每个问题,并解释每个步骤;希望它会有所帮助:

    #!/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"