Clean up script file locations

This commit is contained in:
Nick Rolfe
2021-08-02 17:52:27 +01:00
parent 2c8b1fa6da
commit f2af68f8cf
7 changed files with 15 additions and 11 deletions

View File

@@ -0,0 +1,12 @@
cargo build --release
cargo run --release -p ruby-generator -- --dbscheme ql/src/ruby.dbscheme --library ql/src/codeql_ruby/ast/internal/TreeSitter.qll
codeql query format -i ql\src\codeql_ruby\ast\internal\TreeSitter.qll
rm -Recurse -Force extractor-pack
mkdir extractor-pack | Out-Null
cp codeql-extractor.yml, ql\src\ruby.dbscheme, ql\src\ruby.dbscheme.stats extractor-pack
cp -Recurse tools extractor-pack
mkdir extractor-pack\tools\win64 | Out-Null
cp target\release\ruby-extractor.exe extractor-pack\tools\win64\extractor.exe
cp target\release\ruby-autobuilder.exe extractor-pack\tools\win64\autobuilder.exe

View File

@@ -0,0 +1,23 @@
#!/bin/bash
set -eux
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
platform="linux64"
elif [[ "$OSTYPE" == "darwin"* ]]; then
platform="osx64"
else
echo "Unknown OS"
exit 1
fi
cargo build --release
cargo run --release -p ruby-generator -- --dbscheme ql/src/ruby.dbscheme --library ql/src/codeql_ruby/ast/internal/TreeSitter.qll
codeql query format -i ql/src/codeql_ruby/ast/internal/TreeSitter.qll
rm -rf extractor-pack
mkdir -p extractor-pack
cp -r codeql-extractor.yml tools ql/src/ruby.dbscheme ql/src/ruby.dbscheme.stats extractor-pack/
mkdir -p extractor-pack/tools/${platform}
cp target/release/ruby-extractor extractor-pack/tools/${platform}/extractor
cp target/release/ruby-autobuilder extractor-pack/tools/${platform}/autobuilder

106
scripts/prepare-db-upgrade.sh Executable file
View File

@@ -0,0 +1,106 @@
#!/bin/sh
#
# Prepare the upgrade script directory for a Ruby database schema upgrade.
set -e
set -u
app_name="$(basename "$0")"
usage()
{
exit_code="$1"
shift
cat >&2 <<EOF
${app_name}: $@
${app_name}: Generate skeleton upgrade script.
Usage: ${app_name} [--prev_hash <COMMITISH>]"
--prev-hash <COMMITISH>
Hash/branch to use to get SHA1 for previous DB scheme.
Default: origin/main
Must be run within the git repo needing an update.
EOF
exit "${exit_code}"
}
prev_hash="origin/main"
while [ $# -gt 0 ]; do
case "$1" in
-x)
set -x
;;
-h | --help)
usage 0
;;
--prev-hash)
if [ $# -eq 1 ]; then
usage 2 "--prev-hash requires Commit/Branch option"
fi
shift
prev_hash="$1"
;;
--)
shift
break
;;
-*)
usage 2 "Unrecognised option: $1"
;;
*)
break
;;
esac
shift
done
if [ $# -gt 0 ]; then
usage 2 "Unrecognised operand: $1"
fi
scheme_file="ql/src/ruby.dbscheme"
upgrade_root="ql/src/upgrades"
check_hash_valid()
{
if [ ${#2} -ne 40 ]; then
echo "Did not get expected $1 hash: $2" >&2
exit 2
fi
}
# Get the hash of the previous and current DB Schema files
prev_hash="$(git show "${prev_hash}:${scheme_file}" | git hash-object --stdin)"
check_hash_valid previous "${prev_hash}"
current_hash="$(git hash-object "${scheme_file}")"
check_hash_valid current "${current_hash}"
if [ "${current_hash}" = "${prev_hash}" ]; then
echo "No work to be done."
exit
fi
# Copy current and new dbscheme into the upgrade dir
upgradedir="${upgrade_root}/${prev_hash}"
mkdir -p "${upgradedir}"
cp "${scheme_file}" "${upgradedir}"
git cat-file blob "${prev_hash}" > "${upgradedir}/old.dbscheme"
# Create the template upgrade.properties file.
cat <<EOF > "${upgradedir}/upgrade.properties"
description: <INSERT DESCRIPTION HERE>
compatibility: full|backwards|partial|breaking
EOF
# Tell user what we've done
cat <<EOF
Created upgrade directory here:
${upgradedir}
Please update:
${upgradedir}/upgrade.properties
with appropriate upgrade instructions
EOF