In release_metadata_git, after doing a cd to $REPLICANT_DIR, it tries
to write to "$METADATA/git-tags.txt" and it fails like this:
  $ ./release.sh replicant-6.0 images
  ./release.sh: line 184: images/metadata/git-tags.txt: No such file or 
directory
  ./release.sh: line 184: images/metadata/git-tags.txt: No such file or 
directory
  [...]

This is because $METADATA is relative to "$RELEASE_DIR":
  METADATA="$RELEASE_DIR/metadata"
And RELEASE_DIR is defined from user input:
  RELEASE_DIR=$2

So if users use a relative path, then the "$METADATA/git-tags.txt"
will be relative to $REPLICANT_DIR.

To fix that, the input paths were converted to absolute paths.

Signed-off-by: Denis 'GNUtoo' Carikli <[email protected]>
---
 release.sh | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/release.sh b/release.sh
index f39aad1..20f2f6f 100755
--- a/release.sh
+++ b/release.sh
@@ -21,21 +21,13 @@
 set -e
 
 # Variables
-SCRIPT=$0
-REPLICANT_DIR=$1
-RELEASE_DIR=$2
-RELEASE_TYPE=$3
+SCRIPT="$0"
 
-. releasevars.sh
+REPLICANT_DIR=""
+RELEASE_DIR=""
+RELEASE_TYPE=""
 
 ARGS_COUNT=2
-RELEASE_TOOLS_DIR="$REPLICANT_DIR/out/host/linux-x86/bin"
-RELEASE_TOOLS="adb fastboot heimdall mkbootimg unpackbootimg"
-RELEASE_IMAGES_DIR="$REPLICANT_DIR/out/dist"
-RELEASE_SCRIPTS_DIR=$( dirname "$SCRIPT" )
-RELEASE_SCRIPTS="release.sh releasediff.sh releasetag.sh releasevars.sh 
releasebuild.sh"
-RELEASE_SECURITY_DIR="$REPLICANT_DIR/vendor/replicant-security"
-RELEASE_SECURITY="media.x509.pem platform.x509.pem releasekey.x509.pem 
shared.x509.pem"
 
 release_signatures_tools () {
        if ! [ -d "$TOOLS" ]
@@ -236,6 +228,20 @@ then
        exit 1
 fi
 
+REPLICANT_DIR="$(realpath $1)"
+RELEASE_DIR="$(realpath $2)"
+RELEASE_TYPE="$3"
+
+. releasevars.sh
+
+RELEASE_TOOLS_DIR="$REPLICANT_DIR/out/host/linux-x86/bin"
+RELEASE_TOOLS="adb fastboot heimdall mkbootimg unpackbootimg"
+RELEASE_IMAGES_DIR="$REPLICANT_DIR/out/dist"
+RELEASE_SCRIPTS_DIR=$( dirname "$SCRIPT" )
+RELEASE_SCRIPTS="release.sh releasediff.sh releasetag.sh releasevars.sh 
releasebuild.sh"
+RELEASE_SECURITY_DIR="$REPLICANT_DIR/vendor/replicant-security"
+RELEASE_SECURITY="media.x509.pem platform.x509.pem releasekey.x509.pem 
shared.x509.pem"
+
 case "$RELEASE_TYPE" in
        "signatures")
                release_signatures
-- 
2.24.1

_______________________________________________
Replicant mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to