Add json generator script and makefile target
parent
1300b3f9e1
commit
863a08b0d4
8
Makefile
8
Makefile
|
@ -110,6 +110,14 @@ dist: $(OBJS) README.html
|
|||
VERSION=$(VERSION) scripts/makepkgs freedm $(FREEDM) $(DISTDOCS)
|
||||
VERSION=$(VERSION) scripts/makepkgs freedoom $(FREEDOOM1) $(FREEDOOM2) $(DISTDOCS)
|
||||
|
||||
json: $(OBJS)
|
||||
ifndef JSON
|
||||
@echo "Define JSON as the file to output." >&2
|
||||
@exit 1
|
||||
else
|
||||
JSON=$(JSON) VERSION=$(VERSION) scripts/makejson
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -f *.html deutex.log $(OBJS) \
|
||||
./wadinfo.txt ./wadinfo_phase1.txt \
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
#!/usr/bin/env python
|
||||
# Copyright (c) 2014
|
||||
# Contributors to the Freedoom project. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the freedoom project nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
||||
# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
# This script is pretty hard-coded to assuming the three IWADs and
|
||||
# URLs present as of the Freedoom 0.9 release. Not much can be done
|
||||
# about that, but it will have to be changed whenever the project
|
||||
# expands or switches web host.
|
||||
|
||||
iwads = {
|
||||
"freedm.wad": {
|
||||
"description": "Deathmatch IWAD",
|
||||
"name": "FreeDM"},
|
||||
"freedoom1.wad": {
|
||||
"description": "Ultimate Doom compatible IWAD",
|
||||
"name": "Freedoom: Phase 1"},
|
||||
"freedoom2.wad": {
|
||||
"description": "Doom II compatible IWAD",
|
||||
"name": "Freedoom: Phase 2"}}
|
||||
|
||||
# Find the version to generate JSON for:
|
||||
|
||||
version = os.getenv("VERSION")
|
||||
|
||||
# Find the file to append objects to:
|
||||
|
||||
json_file = os.getenv("JSON")
|
||||
|
||||
if version is None:
|
||||
sys.stderr.write("Version is not specified for release\n")
|
||||
sys.exit(1)
|
||||
if version[0] is 'v':
|
||||
# Strip the leading 'v' from versioning
|
||||
version = version[1:]
|
||||
|
||||
if json_file is None:
|
||||
sys.stderr.write("JSON file not specified!\n")
|
||||
sys.exit(1)
|
||||
|
||||
with open("wads/freedoom1.wad", "rb") as f:
|
||||
iwads["freedoom1.wad"]["md5"] = hashlib.md5(f.read()).hexdigest()
|
||||
|
||||
with open("wads/freedoom2.wad", "rb") as f:
|
||||
iwads["freedoom2.wad"]["md5"] = hashlib.md5(f.read()).hexdigest()
|
||||
|
||||
with open("wads/freedm.wad", "rb") as f:
|
||||
iwads["freedm.wad"]["md5"] = hashlib.md5(f.read()).hexdigest()
|
||||
|
||||
iwads["freedoom1.wad"]["url"] = "https://github.com/freedoom/freedoom/releases/downloads/v" + version + "/freedoom-" + version + ".zip"
|
||||
iwads["freedoom1.wad"]["version"] = version
|
||||
iwads["freedoom2.wad"]["url"] = "https://github.com/freedoom/freedoom/releases/downloads/v" + version + "/freedoom-" + version + ".zip"
|
||||
iwads["freedoom2.wad"]["version"] = version
|
||||
iwads["freedm.wad"]["url"] = "https://github.com/freedoom/freedoom/releases/downloads/v" + version + "/freedm-" + version + ".zip"
|
||||
iwads["freedm.wad"]["version"] = version
|
||||
|
||||
with open(json_file, "w") as f:
|
||||
json.dump(iwads, f, indent=2, sort_keys=True)
|
Loading…
Reference in New Issue