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