#!/bin/bash
# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
cd $(dirname $0)
nyx_absolute_path=$(pwd)
custom_revision="$1"
latest_readme_revision=$(grep -oP '^Revision: \K[^"]+' README.chromium)
tmpdir=$(mktemp -d)
git clone https://chromium.googlesource.com/external/github.com/nyx-fuzz/packer $tmpdir
cd $tmpdir
if [ -z "$custom_revision" ]
then
git checkout --quiet $latest_readme_revision
else
git checkout $custom_revision
fi
latest_remote_revision=$(git rev-parse --verify origin/upstream/main)
git diff --quiet --exit-code $latest_remote_revision -- nyx.h
file_has_changed=$?
if [[ $file_has_changed -eq "1" ]]; then
read -p "New Nyx-Packer version. Update README (y/n)?" choice
if [ "$choice" = "y" ]; then
latest_revision_date=$(date -d @$(git log -n1 --format="%at" $latest_remote_revision) +%Y/%m/%d)
git checkout --quiet $latest_remote_revision
cd $nyx_absolute_path
cp $tmpdir/nyx.h ./nyx.h
sed -i -e "s@Date: .*@Date: $latest_revision_date@" README.chromium
sed -i -e "s/Revision: .*/Revision: $latest_remote_revision/" README.chromium
echo "Nyx-Packer version updated successfully."
fi
elif [[ $file_has_changed -eq "0" ]]; then
echo "Nyx-Packer is up to date."
fi
# Make sure the temporary directory gets removed on script exit.
trap 'rm -rf "$tmpdir"' EXIT