Jessica James
4 years ago
commit
7259fdc58b
7 changed files with 530 additions and 0 deletions
@ -0,0 +1,76 @@ |
|||||
|
[default] |
||||
|
access_key = GOOG2F4PQLDENFN2QHXH |
||||
|
access_token = |
||||
|
add_encoding_exts = |
||||
|
add_headers = |
||||
|
bucket_location = US |
||||
|
ca_certs_file = |
||||
|
cache_file = |
||||
|
check_ssl_certificate = True |
||||
|
check_ssl_hostname = True |
||||
|
cloudfront_host = cloudfront.amazonaws.com |
||||
|
default_mime_type = binary/octet-stream |
||||
|
delay_updates = False |
||||
|
delete_after = False |
||||
|
delete_after_fetch = False |
||||
|
delete_removed = False |
||||
|
dry_run = False |
||||
|
enable_multipart = True |
||||
|
encrypt = False |
||||
|
expiry_date = |
||||
|
expiry_days = |
||||
|
expiry_prefix = |
||||
|
follow_symlinks = False |
||||
|
force = False |
||||
|
get_continue = False |
||||
|
gpg_command = /usr/bin/gpg |
||||
|
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s |
||||
|
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s |
||||
|
gpg_passphrase = |
||||
|
guess_mime_type = True |
||||
|
host_base = storage.googleapis.com |
||||
|
host_bucket = %(bucket).storage.googleapis.com |
||||
|
human_readable_sizes = False |
||||
|
invalidate_default_index_on_cf = False |
||||
|
invalidate_default_index_root_on_cf = True |
||||
|
invalidate_on_cf = False |
||||
|
kms_key = |
||||
|
limit = -1 |
||||
|
limitrate = 0 |
||||
|
list_md5 = False |
||||
|
log_target_prefix = |
||||
|
long_listing = False |
||||
|
max_delete = -1 |
||||
|
mime_type = |
||||
|
multipart_chunk_size_mb = 15 |
||||
|
multipart_max_chunks = 10000 |
||||
|
preserve_attrs = True |
||||
|
progress_meter = True |
||||
|
proxy_host = |
||||
|
proxy_port = 0 |
||||
|
put_continue = False |
||||
|
recursive = False |
||||
|
recv_chunk = 65536 |
||||
|
reduced_redundancy = False |
||||
|
requester_pays = False |
||||
|
restore_days = 1 |
||||
|
restore_priority = Standard |
||||
|
secret_key = P2wrxwJmDO0qEyA/99NUeQPGHd4C0yx6kiDTBjFI |
||||
|
send_chunk = 65536 |
||||
|
server_side_encryption = False |
||||
|
signature_v2 = False |
||||
|
signurl_use_https = False |
||||
|
simpledb_host = sdb.amazonaws.com |
||||
|
skip_existing = False |
||||
|
socket_timeout = 300 |
||||
|
stats = False |
||||
|
stop_on_error = False |
||||
|
storage_class = |
||||
|
urlencoding_mode = normal |
||||
|
use_http_expect = False |
||||
|
use_https = True |
||||
|
use_mime_magic = True |
||||
|
verbosity = WARNING |
||||
|
website_endpoint = http://%(bucket)s.s3-website-%(location)s.amazonaws.com/ |
||||
|
website_error = |
||||
|
website_index = index.html |
@ -0,0 +1,130 @@ |
|||||
|
# Setup static paths |
||||
|
version_path="${version_data_path}" |
||||
|
patches_path="${patches_data_path}" |
||||
|
|
||||
|
# Parse arguments |
||||
|
echo_output=false |
||||
|
verbose=false |
||||
|
|
||||
|
function print_help() { |
||||
|
echo "Cleans up unreferenced builds." |
||||
|
echo "Options:" |
||||
|
echo " --help, -h | Displays this help message" |
||||
|
echo " --echo, -e, --dry-run | Suppresses deleting the unreferenced builds" |
||||
|
echo " --verbose, -v | Enables verbose output, useful for debugging" |
||||
|
echo " --version-path <path> | Explicitly override version data directory path with specified" |
||||
|
echo " --patches-path <path> | Explicitly override patch data path with specified" |
||||
|
echo "" |
||||
|
echo "Example usage: ./clean_builds --echo" |
||||
|
exit 0 |
||||
|
} |
||||
|
|
||||
|
for arg in "$@" |
||||
|
do |
||||
|
case $arg in |
||||
|
--help|-h) |
||||
|
print_help |
||||
|
;; |
||||
|
--echo|--dry-run|-e) |
||||
|
echo_output=true |
||||
|
shift |
||||
|
;; |
||||
|
--verbose|-v) |
||||
|
verbose=true |
||||
|
shift |
||||
|
;; |
||||
|
--version-path) |
||||
|
version_path="$2" |
||||
|
shift |
||||
|
shift |
||||
|
;; |
||||
|
--patches-path) |
||||
|
patches_path="$2" |
||||
|
shift |
||||
|
shift |
||||
|
;; |
||||
|
esac |
||||
|
done |
||||
|
|
||||
|
if $verbose |
||||
|
then |
||||
|
echo "Values:" |
||||
|
echo " echo_output: $echo_output" |
||||
|
echo " patches_path: $patches_path" |
||||
|
echo " version_path: $version_path" |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Scans for unreferenced builds, and deletes them if necessary |
||||
|
# |
||||
|
# @param version_file Path to version files containing build information |
||||
|
# @param patches_path Path to the root patches directory on this filesystem |
||||
|
function clean_builds() { |
||||
|
version_path="$1" |
||||
|
patches_path="$2" |
||||
|
|
||||
|
# Read in list of builds |
||||
|
builds=() |
||||
|
for item in $patches_path/*; do |
||||
|
if [ -f "$item/instructions.json" ]; then |
||||
|
builds+=("$item") |
||||
|
#echo "$item" |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
if $verbose; then |
||||
|
echo "Builds available:" |
||||
|
for build in "${builds[@]}"; do |
||||
|
echo "$build" |
||||
|
done |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Read in referenced builds |
||||
|
referenced_builds=() |
||||
|
for version_file in $version_path/*; do |
||||
|
version_data=$(cat "$version_file") |
||||
|
build=$(echo "$version_data" | jq -r ".game.patch_path") |
||||
|
build_path="$patches_path/$build" |
||||
|
|
||||
|
if [[ ! "${referenced_builds[@]}" =~ "$build_path" ]]; then |
||||
|
referenced_builds+=("$build_path") |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
if $verbose; then |
||||
|
echo "Referenced builds:" |
||||
|
for build in "${referenced_builds[@]}"; do |
||||
|
echo $build |
||||
|
done |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Build list of unreferenced builds |
||||
|
unreferenced_builds=() |
||||
|
for build in "${builds[@]}"; do |
||||
|
if [[ ! "${referenced_builds[@]}" =~ "$build" ]]; then |
||||
|
unreferenced_builds+=("$build") |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
if $verbose; then |
||||
|
echo "Unreferenced builds:" |
||||
|
for build in "${unreferenced_builds[@]}"; do |
||||
|
echo $build |
||||
|
done |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Delete unreferenced builds |
||||
|
for build in "${unreferenced_builds[@]}"; do |
||||
|
echo "Removing $build..." |
||||
|
if $echo_output; then |
||||
|
echo rm -rf "$build" |
||||
|
else |
||||
|
rm -rf "$build" |
||||
|
fi |
||||
|
done |
||||
|
} |
||||
|
|
||||
|
clean_builds "${version_path}" "${patches_path}" |
@ -0,0 +1,34 @@ |
|||||
|
[ |
||||
|
{ |
||||
|
"name": "Constructive Tyranny (Germany)", |
||||
|
"url": "http://rxmirror.ctgamehosts.uk/" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Constructive Tyranny US (Vint Hill, Virginia, USA)", |
||||
|
"url": "http://mirror.us.tyrant.gg/" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Constructive Tyranny US (Piscataway, New Jersey, USA)", |
||||
|
"url": "http://mirror.usa.tyrant.gg/" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "iTweek (Germany)", |
||||
|
"url": "http://rxp-de1.ts3-server.ch/" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "CnCFPS.com (Los Angeles, CA, USA)", |
||||
|
"url": "http://rxp-lax2.cncfps.com" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "TotemArts (Las Vegas, Nevada, USA)", |
||||
|
"url": "http://us-lv.buyvm.renegade-x.com/" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "TotemArts (New York, New York, USA)", |
||||
|
"url": "http://us-ny.buyvm.renegade-x.com/" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "TotemArts (Roost, Luxembourg, EU)", |
||||
|
"url": "http://eu-lux.buyvm.renegade-x.com/" |
||||
|
} |
||||
|
] |
@ -0,0 +1,112 @@ |
|||||
|
# Setup static paths |
||||
|
version_path="${version_data_path}" |
||||
|
patches_path="${patches_data_path}" |
||||
|
|
||||
|
# Parse arguments |
||||
|
verbose=false |
||||
|
|
||||
|
function print_help() { |
||||
|
echo "Prints out a mapping of the current versions/builds." |
||||
|
echo "Options:" |
||||
|
echo " --help, -h | Displays this help message" |
||||
|
echo " --verbose, -v | Enables verbose output, useful for debugging" |
||||
|
echo " --version-path <path> | Explicitly override version data directory path with specified" |
||||
|
echo " --patches-path <path> | Explicitly override patch data path with specified" |
||||
|
echo "" |
||||
|
echo "Example usage: ./map_builds --echo" |
||||
|
exit 0 |
||||
|
} |
||||
|
|
||||
|
for arg in "$@" |
||||
|
do |
||||
|
case $arg in |
||||
|
--help|-h) |
||||
|
print_help |
||||
|
;; |
||||
|
--verbose|-v) |
||||
|
verbose=true |
||||
|
shift |
||||
|
;; |
||||
|
--version-path) |
||||
|
version_path="$2" |
||||
|
shift |
||||
|
shift |
||||
|
;; |
||||
|
--patches-path) |
||||
|
patches_path="$2" |
||||
|
shift |
||||
|
shift |
||||
|
;; |
||||
|
esac |
||||
|
done |
||||
|
|
||||
|
if $verbose |
||||
|
then |
||||
|
echo "Values:" |
||||
|
echo " patches_path: $patches_path" |
||||
|
echo " version_path: $version_path" |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Scans for unreferenced builds, and deletes them if necessary |
||||
|
# |
||||
|
# @param version_file Path to version files containing build information |
||||
|
# @param patches_path Path to the root patches directory on this filesystem |
||||
|
function map_builds() { |
||||
|
version_path="$1" |
||||
|
patches_path="$2" |
||||
|
|
||||
|
# Read in list of builds |
||||
|
builds=() |
||||
|
for item in $patches_path/*; do |
||||
|
if [ -f "$item/instructions.json" ]; then |
||||
|
builds+=("$item") |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
if $verbose; then |
||||
|
echo "Builds available:" |
||||
|
for build in "${builds[@]}"; do |
||||
|
echo "$build" |
||||
|
done |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Read in referenced builds |
||||
|
referenced_builds=() |
||||
|
for version_file in $version_path/*; do |
||||
|
version_data=$(cat "$version_file") |
||||
|
build=$(echo "$version_data" | jq -r ".game.patch_path") |
||||
|
build_path="$patches_path/$build" |
||||
|
|
||||
|
if [[ ! "${referenced_builds[@]}" =~ "$build_path" ]]; then |
||||
|
referenced_builds+=("$build_path") |
||||
|
fi |
||||
|
|
||||
|
echo "$(basename $version_file) -> $build" |
||||
|
done |
||||
|
|
||||
|
if $verbose; then |
||||
|
echo "Referenced builds:" |
||||
|
for build in "${referenced_builds[@]}"; do |
||||
|
echo $build |
||||
|
done |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Build list of unreferenced builds |
||||
|
unreferenced_builds=() |
||||
|
for build in "${builds[@]}"; do |
||||
|
if [[ ! "${referenced_builds[@]}" =~ "$build" ]]; then |
||||
|
unreferenced_builds+=("$build") |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
# Print out unreferenced builds |
||||
|
echo "Unreferenced builds:" |
||||
|
for build in "${unreferenced_builds[@]}"; do |
||||
|
echo $build |
||||
|
done |
||||
|
} |
||||
|
|
||||
|
map_builds "${version_path}" "${patches_path}" |
@ -0,0 +1,145 @@ |
|||||
|
# Setup static paths |
||||
|
version_path="${version_data_path}" |
||||
|
patches_path="${patches_data_path}" |
||||
|
|
||||
|
# Parse arguments |
||||
|
echo_output=false |
||||
|
minify=false |
||||
|
verbose=false |
||||
|
|
||||
|
function print_help() { |
||||
|
echo "Sets the patch path for a given branch." |
||||
|
echo "Options:" |
||||
|
echo " --help, -h | Displays this help message" |
||||
|
echo " --echo, -e, --dry-run | Prints the output to the console, instead of overwriting the file" |
||||
|
echo " --minify, -m | Minifies the JSON result" |
||||
|
echo " --verbose, -v | Enables verbose output, useful for debugging" |
||||
|
echo " --version-path <path> | Explicitly override version data directory path with specified" |
||||
|
echo " --patches-path <path> | Explicitly override patch data path with specified" |
||||
|
echo "" |
||||
|
echo "Example usage: ./set_game_branch --echo release PATCH5464C" |
||||
|
exit 0 |
||||
|
} |
||||
|
|
||||
|
for arg in "$@" |
||||
|
do |
||||
|
case $arg in |
||||
|
--help|-h) |
||||
|
print_help |
||||
|
;; |
||||
|
--echo|--dry-run|-e) |
||||
|
echo_output=true |
||||
|
shift |
||||
|
;; |
||||
|
--minify|-m) |
||||
|
minify=true |
||||
|
shift |
||||
|
;; |
||||
|
--verbose|-v) |
||||
|
verbose=true |
||||
|
shift |
||||
|
;; |
||||
|
--version-path) |
||||
|
version_path="$2" |
||||
|
shift |
||||
|
shift |
||||
|
;; |
||||
|
--patches-path) |
||||
|
patches_path="$2" |
||||
|
shift |
||||
|
shift |
||||
|
;; |
||||
|
esac |
||||
|
done |
||||
|
|
||||
|
# Sanity check parameter count |
||||
|
if [ "$#" -ne 2 ] |
||||
|
then |
||||
|
echo "ERROR: insufficient parameters" |
||||
|
print_help |
||||
|
fi |
||||
|
|
||||
|
version_file="${version_path%/}/${1%.json}.json" |
||||
|
patch_path="${2%/}" |
||||
|
|
||||
|
if $verbose |
||||
|
then |
||||
|
echo "Values:" |
||||
|
echo " echo_output: $echo_output" |
||||
|
echo " minify: $minify" |
||||
|
echo " patches_path: $patches_path" |
||||
|
echo " version_path: $version_path" |
||||
|
echo " patch_path: $patch_path" |
||||
|
echo " version_file: $version_file" |
||||
|
echo "" |
||||
|
fi |
||||
|
|
||||
|
# Sets a Renegade X launcher version branch to point to a Renegade X game patch data package |
||||
|
# |
||||
|
# @param version_file Launcher version file to target/modify |
||||
|
# @param patch_path Relative path from patches_path to target game patch data |
||||
|
# @param patches_path Path to the root patches directory on this filesystem |
||||
|
function set_branch() { |
||||
|
version_file="$1" |
||||
|
patch_path="$2" |
||||
|
patches_path="$3" |
||||
|
metadata_file="${patches_path}/${patch_path}/metadata.json" |
||||
|
|
||||
|
# Verify version branch exists |
||||
|
if ! [ -f "$version_file" ] |
||||
|
then |
||||
|
echo "ERROR: version file does not exist: $version_file" |
||||
|
return 1 |
||||
|
fi |
||||
|
|
||||
|
# Verify patch data exists |
||||
|
if ! [ -f "$metadata_file" ] |
||||
|
then |
||||
|
echo "ERROR: metadata file does not exist: $metadata_file" |
||||
|
return 1 |
||||
|
fi |
||||
|
|
||||
|
# Get metadata hash |
||||
|
patch_metadata=$(cat "${metadata_file}") |
||||
|
metadata_hash=$(sha256sum ${metadata_file} | awk '{ print toupper($1) }') |
||||
|
|
||||
|
# Validate instructions_hash |
||||
|
instructions_real_hash=$(sha256sum "${patches_path}/${patch_path}/instructions.json"| awk '{ print toupper($1) }') |
||||
|
instructions_expected_hash=$(echo "$patch_metadata" | jq -r ".instructions_hash") |
||||
|
if [ "$instructions_expected_hash" != "$instructions_real_hash" ] |
||||
|
then |
||||
|
echo "ERROR: Metadata hash does not match real instructions.json hash. Corrupt upload?" |
||||
|
return 1 |
||||
|
fi |
||||
|
|
||||
|
# TODO: Verify contents of patch by parsing through instructions.json to check file hashes |
||||
|
|
||||
|
# Read in initial version data |
||||
|
version_data=$(cat "${version_file}") |
||||
|
|
||||
|
# Set the patch_path |
||||
|
version_data=$(echo "${version_data}" | jq ".game.patch_path = \"${patch_path}\"") |
||||
|
|
||||
|
# Set the metadata hash; this is unused for now |
||||
|
version_data=$(echo "${version_data}" | jq ".game.metadata_hash = \"${metadata_hash}\"") |
||||
|
|
||||
|
# Merge in metadata into game |
||||
|
game_version_data=$(echo "${version_data}" | jq ".game * ${patch_metadata}") |
||||
|
version_data=$(echo "${version_data}" | jq ".game = ${game_version_data}") |
||||
|
|
||||
|
# Minify final JSON if specified |
||||
|
if $minify |
||||
|
then |
||||
|
version_data=$(echo "${version_data}" | jq -c .) |
||||
|
fi |
||||
|
|
||||
|
# Write version_data to destination |
||||
|
if $echo_output |
||||
|
then |
||||
|
echo "${version_data}" |
||||
|
else |
||||
|
echo "${version_data}" > ${version_file} |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
set_branch "${version_file}" "${patch_path}" "${patches_path}" |
@ -0,0 +1,13 @@ |
|||||
|
#!/bin/bash |
||||
|
lockfile=/home/renx/static.renegade-x.com/sync.lock |
||||
|
{ |
||||
|
if ! flock -n 9 |
||||
|
then |
||||
|
exit 1 |
||||
|
fi |
||||
|
|
||||
|
echo Synching... |
||||
|
s3cmd sync --acl-public --add-header="Cache-Control:max-age=0" --config=/home/renx/static.renegade-x.com/.s3cfg-gcloud /home/renx/static.renegade-x.com/data/ s3://static.renegade-x.com/ |
||||
|
# "--delete-removed" was removed due to a 400 InvalidArgument error; that functionality needs to be re-added somehow |
||||
|
|
||||
|
} 9>"$lockfile" |
@ -0,0 +1,20 @@ |
|||||
|
game_mirrors_file=game_mirrors |
||||
|
static_path="/home/renx/static.renegade-x.com/" |
||||
|
version_path="${static_path}/data/launcher_data/version" |
||||
|
|
||||
|
update_mirrors() { |
||||
|
game_mirrors=$(cat "${game_mirrors_file}") |
||||
|
version_file=${version_path}/$1 |
||||
|
jq ".game.mirrors = ${game_mirrors}" "${version_file}" > "$version_file.tmp" && mv "${version_file}.tmp" "${version_file}" |
||||
|
} |
||||
|
|
||||
|
# Release branches |
||||
|
update_mirrors release.json |
||||
|
update_mirrors server.json |
||||
|
|
||||
|
# Staging branches |
||||
|
update_mirrors beta.json |
||||
|
|
||||
|
# Temporary / Alpha testing branches |
||||
|
update_mirrors alpha.json |
||||
|
update_mirrors launcher.json |
Loading…
Reference in new issue