diff --git a/.travis.yml b/.travis.yml
index 5d93a32e5..47c504ecc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,9 +1,11 @@
-language: erlang
+language: objective-c
install:
-- sudo apt-get install luarocks
-- sudo apt-get install python-virtualenv
-- sudo luarocks install luafilesystem
-- sudo luarocks install busted
+- brew update
+- brew install lua luarocks
+- sudo easy_install pip
+- sudo pip install virtualenv
+- luarocks install luafilesystem
+- luarocks install busted
env:
global:
- secure: "MA1+zHILO7O99n5+nj6jxuqVHUM0ZcGFfiZ9GT/4JyOG8nGkKWXopW/PbDzj\nRRFW3oknkm9jwVgCccvb2oSCPhEUVEUwcdo6xMuCFnskQNAA4q/SWAXXcZvm\nLjaJHNIb66Nnti+dhfAtfNvw8InzV7RzlmBxRrlH9M/0+X2gE5U="
diff --git a/Makefile b/Makefile
index dc861a208..c07f0cb70 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-.PHONY: love osx clean contributors win32 win64 maps tweet post run release forum
+.PHONY: clean contributors run forum productionize deploy love
UNAME := $(shell uname)
@@ -16,30 +16,18 @@ else
wget = wget --no-check-certificate
endif
-mixpanel_dev = ac1c2db50f1332444fd0cafffd7a5543
-
-ifndef MIXPANEL_TOKEN
- mixpanel_prod = $(mixpanel_dev)
-else
- mixpanel_prod = $(MIXPANEL_TOKEN)
-endif
-
+maps := $(patsubst %.tmx,%.lua,$(wildcard src/maps/*.tmx))
+love: build/hawkthorne.love
-love: maps build
- @sed -i.bak 's/$(mixpanel_dev)/$(mixpanel_prod)/g' src/main.lua
- cd src && zip -q -r ../build/hawkthorne.love . -x ".*" \
- -x ".DS_Store" -x "*/full_soundtrack.ogg" -x "main.lua.bak"
- mv src/main.lua.bak src/main.lua
-
-build:
+build/hawkthorne.love: $(maps) src
mkdir -p build
+ cd src && zip -q -r ../build/hawkthorne.love . -x ".*" \
+ -x ".DS_Store" -x "*/full_soundtrack.ogg" -x "*.bak"
-run: maps $(LOVE)
+run: $(maps) $(LOVE)
$(LOVE) src
-maps: $(patsubst %.tmx,%.lua,$(wildcard src/maps/*.tmx))
-
src/maps/%.lua: src/maps/%.tmx bin/tmx2lua
bin/tmx2lua $<
@@ -68,19 +56,12 @@ bin/love.app/Contents/MacOS/love:
# THE REST OF THESE TARGETS ARE FOR RELEASE AUTOMATION
######################################################
-current_version = $(shell python scripts/version.py current)
-sparkle_version = $(shell python scripts/version.py current --sparkle)
-next_version = $(shell python scripts/version.py next)
-previous_version = $(shell python scripts/version.py previous)
-
CI_TARGET=test
ifeq ($(TRAVIS), true)
-ifeq ($(TRAVIS_BRANCH), master)
+ifeq ($(TRAVIS_BRANCH), release)
ifeq ($(TRAVIS_PULL_REQUEST), false)
-ifeq ($(shell python scripts/bump.py), true)
-CI_TARGET=clean test upload social
-endif
+CI_TARGET=clean test productionize upload deltas social
endif
endif
endif
@@ -90,9 +71,8 @@ positions: $(patsubst %.png,%.lua,$(wildcard src/positions/*.png))
src/positions/%.lua: psds/positions/%.png
overlay2lua src/positions/config.json $<
-win: win32/love.exe win32 win64
-
-win32: love
+build/hawkthorne-win-x86.zip: build/hawkthorne.love
+ mkdir -p build
rm -rf hawkthorne
rm -f hawkthorne-win-x86.zip
cat win32/love.exe build/hawkthorne.love > win32/hawkthorne.exe
@@ -105,7 +85,8 @@ win32/love.exe:
unzip -q windows-build-files.zip
rm -f windows-build-files.zip
-win64: love
+build/hawkthorne-win-x64.zip: build/hawkthorne.love
+ mkdir -p build
rm -rf hawkthorne
rm -f hawkthorne-win-x64.zip
cat win64/love.exe build/hawkthorne.love > win64/hawkthorne.exe
@@ -113,71 +94,51 @@ win64: love
zip -q -r hawkthorne-win-x64 hawkthorne -x "*/love.exe"
mv hawkthorne-win-x64.zip build
-osx: maps bin/love.app/Contents/MacOS/love build
+build/hawkthorne-osx.zip: bin/love.app/Contents/MacOS/love $(maps)
+ mkdir -p build
cp -r bin/love.app Journey\ to\ the\ Center\ of\ Hawkthorne.app
- sed -i.bak 's/0.0.1/$(sparkle_version)/g' \
- Journey\ to\ the\ Center\ of\ Hawkthorne.app/Contents/Info.plist
- @sed -i.bak 's/$(mixpanel_dev)/$(mixpanel_prod)/g' src/main.lua
cp -r src Journey\ to\ the\ Center\ of\ Hawkthorne.app/Contents/Resources/hawkthorne.love
rm -f Journey\ to\ the\ Center\ of\ Hawkthorne.app/Contents/Resources/hawkthorne.love/.DS_Store
- find Journey\ to\ the\ Center\ of\ Hawkthorne.app/Contents -name "*.bak" -delete
- mv src/main.lua.bak src/main.lua
+ cp osx/Info.plist \
+ Journey\ to\ the\ Center\ of\ Hawkthorne.app/Contents/Info.plist
cp osx/Hawkthorne.icns \
Journey\ to\ the\ Center\ of\ Hawkthorne.app/Contents/Resources/Love.icns
zip -q -r hawkthorne-osx Journey\ to\ the\ Center\ of\ Hawkthorne.app
mv hawkthorne-osx.zip build
rm -rf Journey\ to\ the\ Center\ of\ Hawkthorne.app
-upload: osx win venv
- venv/bin/python scripts/upload.py releases/$(current_version) build/hawkthorne.love
- venv/bin/python scripts/upload.py releases/$(current_version) build/hawkthorne-osx.zip
- venv/bin/python scripts/upload.py releases/$(current_version) build/hawkthorne-win-x86.zip
- venv/bin/python scripts/upload.py releases/$(current_version) build/hawkthorne-win-x64.zip
- venv/bin/python scripts/symlink.py $(current_version)
+productionize:
+ venv/bin/python scripts/productionize.py
+
+binaries: build/hawkthorne-osx.zip build/hawkthorne-win-x64.zip build/hawkthorne-win-x86.zip
+
+upload: binaries venv
+ venv/bin/python scripts/upload_binaries.py
-deltas:
+deltas: venv
venv/bin/python scripts/sparkle.py
cat sparkle/appcast.xml | xmllint -format - # Make sure the appcast is valid xml
venv/bin/python scripts/upload.py / sparkle/appcast.xml
-release: release.md
- git fetch origin
- git fetch --tags
- sed -i '' 's/$(current_version)/$(next_version)/g' src/conf.lua
- git add src/conf.lua
- git commit -eF release.md
- git push origin master
- git tag -a $(next_version) -m "Tagged new release at version $(next_version)"
- git push --tags
-
-release.md: venv
- git fetch --tags
- venv/bin/python scripts/release_markdown.py $(current_version) master $@
-
-forum: venv
- @venv/bin/python scripts/create_forum_post.py $(current_version)
-
-
-social: venv notes post
- venv/bin/python scripts/create_release_post.py $(current_version) post.md
-
-notes: notes.html post
+social: venv post.md notes.html
venv/bin/python scripts/upload.py releases/$(current_version) notes.html
-
-notes.html: post
+ venv/bin/python scripts/socialize.py post.md
+
+notes.html: post.md
venv/bin/python -m markdown post.md > notes.html
-post:
- git show -s --format=%s $(current_version)^{commit} > $@.md
- echo "\n" >> $@.md
- git show -s --format=%b $(current_version)^{commit} >> $@.md
+post.md:
+ venv/bin/python scripts/create_post.py $(shell git log master -n 1 --pretty=format:%H) post.md
venv:
- virtualenv --python=python2.7 venv
- venv/bin/pip install -r requirements.txt
+ virtualenv -q --python=python2.7 venv
+ venv/bin/pip install -q -r requirements.txt
deploy: $(CI_TARGET)
+forum: venv
+ venv/bin/python scripts/create_forum_post.py
+
contributors: venv
venv/bin/python scripts/clean.py > CONTRIBUTORS
venv/bin/python scripts/credits.py > src/credits.lua
@@ -190,6 +151,7 @@ clean:
rm -f release.md
rm -f post.md
rm -f notes.html
+ rm -rf src/maps/*.lua
rm -rf Journey\ to\ the\ Center\ of\ Hawkthorne.app
reset:
diff --git a/README.md b/README.md
index d4f1a7b1b..7e6d8988d 100644
--- a/README.md
+++ b/README.md
@@ -66,6 +66,13 @@ Congratulations! You're running Journey to the Center of Hawkthorne! Your next s
- [/r/hawkthorne subreddit](http://www.reddit.com/r/hawkthorne)
- [#hawkthorne@irc.freenode.net](http://webchat.freenode.net/?channels=hawkthorne) on IRC
+
+## Releasing a new version
+
+We release a new version of Journey to the Center of Hawkthorne about every two
+weeks. To create a release, open a pull request from the `master` branch to the
+`release` branch. You should never commit directly to the `release` branch.
+
## License
Unless otherwise noted, this code is licensed under the MIT License.
diff --git a/osx/Info.plist b/osx/Info.plist
index 061dbd8c4..dcf31b304 100644
--- a/osx/Info.plist
+++ b/osx/Info.plist
@@ -21,7 +21,7 @@
CFBundleSignature
HaWk
CFBundleVersion
- 0.0.1
+ 0.0.77
DTCompiler
DTPlatformBuild
@@ -37,7 +37,7 @@
DTXcodeBuild
4G1004
NSHumanReadableCopyright
- © 2006-2012 LÖVE Development Team
+ 2006-2012 Hawkthorne Development Team
NSPrincipalClass
NSApplication
SUFeedURL
@@ -45,4 +45,4 @@
SUPublicDSAKeyFile
dsa_pub.pem
-
+
\ No newline at end of file
diff --git a/scripts/bump.py b/scripts/bump.py
deleted file mode 100644
index 345b74b4a..000000000
--- a/scripts/bump.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import os
-import urllib
-import version
-import json
-import sys
-
-if __name__ == "__main__":
- current = version.current_version()
- url = "http://files.projecthawkthorne.com/releases/{}/notes.html"
-
- feed = urllib.urlopen(url.format(current))
-
- if feed.getcode() == 403:
- sys.stdout.write('true')
- else:
- sys.stdout.write('false')
- exit(0)
diff --git a/scripts/create_post.py b/scripts/create_post.py
new file mode 100644
index 000000000..5b11f665c
--- /dev/null
+++ b/scripts/create_post.py
@@ -0,0 +1,57 @@
+import os
+import sys
+from datetime import datetime
+import argparse
+import boto
+import requests
+import jinja2
+import json
+import time
+import subprocess
+
+import version
+
+pulls_url = "https://api.github.com/repos/hawkthorne/hawkthorne-journey/pulls"
+compare_url = "https://github.com/hawkthorne/hawkthorne-journey/compare/{}...{}"
+GITHUB_TIME = "%Y-%m-%dT%H:%M:%SZ"
+
+
+def post_content(base, head):
+ if base is None or head is None:
+ url = ""
+ else:
+ url = compare_url(base, head)
+
+ resp = requests.get(pulls_url, params={'state': 'closed', 'base': 'release'})
+ pulls = resp.json()
+
+ if not pulls:
+ raise ValueError(('No pull request for this release, which means no'
+ 'post'))
+
+ return pulls[0]['body'] + "\n" + url
+
+
+def commithash(version):
+ bucket = boto.s3.get_bucket("files.projecthawkthorne.com")
+ key = bucket.get_key("releases/v{}/hawkthorne-osx.zip".format(version))
+
+ if key is None:
+ return key
+
+ return key.get_contents()
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('commit_hash')
+ parser.add_argument('output', type=argparse.FileType('w'))
+ args = parser.parse_args()
+
+ prevous_hash = commithash(version.prev_version)
+
+ args.output.write(post_content(previous_hash, args.commit_hash))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/productionize.py b/scripts/productionize.py
new file mode 100644
index 000000000..d9bfa4f7f
--- /dev/null
+++ b/scripts/productionize.py
@@ -0,0 +1,47 @@
+import os
+import jinja2
+import version
+import logging
+
+MIXPANEL_DEV = 'ac1c2db50f1332444fd0cafffd7a5543'
+MIXPANEL_TOKEN = os.environ.get('MIXPANEL_TOKEN', MIXPANEL_DEV)
+
+
+def create_main_lua():
+ with open('src/main.lua') as infile:
+ contents = infile.read()
+
+ with open('src/main.lua', 'w') as outfile:
+ outfile.write(contents.replace(MIXPANEL_DEV, MIXPANEL_TOKEN))
+
+
+def create_conf_lua(version):
+ template = jinja2.Template(open('templates/conf.lua').read())
+
+ with open('src/conf.lua', 'w') as f:
+ f.write(template.render(version=version))
+
+
+def create_info_plist(version):
+ template = jinja2.Template(open('templates/Info.plist').read())
+
+ with open('osx/Info.plist', 'w') as f:
+ f.write(template.render(version=version))
+
+
+def main():
+ v = version.next_version()
+
+ logging.info("Creating osx/Info.plist")
+ create_info_plist(v)
+
+ logging.info("Creating src/conf.lua")
+ create_conf_lua(v)
+
+ logging.info("Creating src/main.lua")
+ create_main_lua()
+
+
+if __name__ == "__main__":
+ logging.basicConfig(level=logging.INFO)
+ main()
diff --git a/scripts/release_markdown.py b/scripts/release_markdown.py
deleted file mode 100644
index 0b1a6b921..000000000
--- a/scripts/release_markdown.py
+++ /dev/null
@@ -1,55 +0,0 @@
-import os
-import sys
-from datetime import datetime
-import argparse
-import requests
-import jinja2
-import json
-import time
-import subprocess
-
-pulls_url = "https://api.github.com/repos/hawkthorne/hawkthorne-journey/pulls"
-issues_url = "https://api.github.com/repos/hawkthorne/hawkthorne-journey/issues"
-tag_url = "https://api.github.com/repos/hawkthorne/hawkthorne-journey/git/tags/{}"
-GITHUB_TIME = "%Y-%m-%dT%H:%M:%SZ"
-
-title = "[RELEASE] Journey to the Center of Hawkthorne {}"
-
-
-def post_content(base, head):
- sha = subprocess.check_output(["git", "show-ref", base]).split(" ")[0]
-
- tag = requests.get(tag_url.format(sha)).json()
-
- # Just pretend the date is UTC.
- tag_date = datetime.strptime(tag['tagger']['date'], GITHUB_TIME)
-
- new_features = []
-
- for pull_request in requests.get(pulls_url, params={'state': 'closed'}).json():
- if not pull_request['merged_at']:
- continue
- if datetime.strptime(pull_request['merged_at'], GITHUB_TIME) > tag_date:
- new_features.append(pull_request)
-
- template = jinja2.Template(open('templates/post.md').read())
-
- bugs = requests.get(issues_url, params={'labels': 'bug'}).json()
-
- return template.render(new_features=new_features, version=head, bugs=bugs)
-
-
-def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('base')
- parser.add_argument('head')
- parser.add_argument('output', type=argparse.FileType('w'))
- args = parser.parse_args()
-
- content = post_content(args.base, args.head)
-
- args.output.write(content)
-
-
-if __name__ == "__main__":
- main()
diff --git a/scripts/create_release_post.py b/scripts/socialize.py
similarity index 81%
rename from scripts/create_release_post.py
rename to scripts/socialize.py
index 77b2c8143..f50996417 100644
--- a/scripts/create_release_post.py
+++ b/scripts/socialize.py
@@ -6,7 +6,9 @@
import json
import time
import tweepy
-import subprocess
+import logging
+
+import version
class Reddit(object):
@@ -59,8 +61,12 @@ def reddit_url(api_response):
return api_response['jquery'][-1][3][0]
-def update_twitter(version, api_response):
- post_url = reddit_url(api_response)
+def update_twitter(version, post_url):
+ tweet = "Journey to Center of Hawkthorne {} {}".format(version, post_url)
+
+ if 'TRAVIS' not in os.environ:
+ logging.info('[DRYRUN] Tweeting {}'.format(tweet))
+ return
consumer_key = "wCIocGQX6rGhkwXGDAIeiw"
consumer_secret = os.environ['BRITTA_BOT_CONSUMER_SECRET']
@@ -69,36 +75,42 @@ def update_twitter(version, api_response):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
- api = tweepy.API(auth)
- tweet = "Journey to Center of Hawkthorne {} {}".format(version, post_url)
+ api = tweepy.API(auth)
api.update_status(tweet)
-def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('version')
- parser.add_argument('input', type=argparse.FileType('r'))
- parser.add_argument('-d', '--debug', default=False, action='store_true')
- args = parser.parse_args()
-
- if args.debug:
- print args.input.read()
+def update_reddit(title, post):
+ if 'TRAVIS' not in os.environ:
+ logging.info('[DRYRUN] Posting {}'.format(title))
return
r = Reddit(os.environ['BRITTA_BOT_USER'])
- post = args.input.read()
-
- resp = r.submit('hawkthorne', title.format(args.version),
+ resp = r.submit('hawkthorne', title.format(v),
text=post,
auth=(os.environ['BRITTA_BOT_USER'], os.environ['BRITTA_BOT_PASS']))
- resp = r.submit('community', title.format(args.version),
+ r.submit('community', title.format(v),
text=post,
auth=(os.environ['BRITTA_BOT_USER'], os.environ['BRITTA_BOT_PASS']))
- update_twitter(args.version, resp.json())
+ return reddit_url(resp.json())
+
+
+def main():
+ logging.basicConfig(level=logging.INFO)
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('input', type=argparse.FileType('r'))
+ parser.add_argument('-d', '--debug', default=False, action='store_true')
+ args = parser.parse_args()
+
+ v = version.current_version()
+ post = args.input.read()
+
+ post_url = update_reddit(title.format(v), post)
+ update_twitter(v, post_url)
if __name__ == "__main__":
diff --git a/scripts/sparkle.py b/scripts/sparkle.py
index d52d339bd..89a59a95a 100644
--- a/scripts/sparkle.py
+++ b/scripts/sparkle.py
@@ -1,14 +1,17 @@
-import version
+import boto
import datetime
import os
import urllib
+import requests
import logging
import subprocess
import xml.etree.ElementTree as etree
from os import path
from email.utils import formatdate
from calendar import timegm
+
import upload
+import version
logging.basicConfig(level=logging.INFO)
@@ -24,9 +27,12 @@
def upload_deltas(delta_paths):
+ c = boto.connect_s3()
+ b = c.get_bucket('files.projecthawkthorne.com')
+
for delta in delta_paths:
logging.info('Uploading {}'.format(delta))
- upload.upload_path("deltas", delta)
+ upload.upload_path(b, "deltas", delta)
def download(version):
@@ -90,7 +96,7 @@ def make_appcast_item(version, sparkle_version, delta_paths):
if __name__ == "__main__":
x, y, z = version.current_version_tuple()
- versions = ["{}.{}.{}".format(x, y, int(z) - i) for i in range(4)]
+ versions = ["v{}.{}.{}".format(x, y, int(z) - i) for i in range(4)]
current_version = versions[0]
sparkle_current_version = current_version.replace("v", "")
@@ -119,7 +125,11 @@ def make_appcast_item(version, sparkle_version, delta_paths):
if not path.exists("sparkle/BinaryDelta.zip"):
logging.info("Fetching BinaryDelta")
- urllib.urlretrieve(BDIFF_URL, "sparkle/BinaryDelta.zip")
+ resp = requests.get(BDIFF_URL)
+ resp.raise_for_status()
+
+ with open("sparkle/BinaryDelta.zip", 'w') as f:
+ f.write(resp.content)
subprocess.call(["unzip", "-q", "sparkle/BinaryDelta.zip", "-d", "sparkle"])
diff --git a/scripts/upload.py b/scripts/upload.py
index 22ce4b187..b5e6e4a79 100644
--- a/scripts/upload.py
+++ b/scripts/upload.py
@@ -1,24 +1,32 @@
import os
import argparse
import boto
+import logging
from boto.s3 import key
parser = argparse.ArgumentParser(description="Upload files to S3")
parser.add_argument("prefix", help="Prefix for file of upload")
parser.add_argument("path", help="File to upload")
-def upload_path(prefix, path):
+
+def upload_path(b, prefix, path):
+ if 'TRAVIS' not in os.environ:
+ logging.info('[DRYRUN] uploading {} to {}'.format(path, prefix))
+ return
+
name = os.path.basename(path)
-
- c = boto.connect_s3()
- b = c.get_bucket('files.projecthawkthorne.com')
-
k = key.Key(b)
k.key = os.path.join(prefix, name)
+
+ logging.info('Uploading {} to {}'.format(path, prefix))
k.set_contents_from_filename(path)
k.set_acl('public-read')
if __name__ == "__main__":
+ logging.basicConfig(level=logging.INFO)
args = parser.parse_args()
- upload_path(args.prefix, args.path)
+
+ c = boto.connect_s3()
+ b = c.get_bucket('files.projecthawkthorne.com')
+ upload_path(b, args.prefix, args.path)
diff --git a/scripts/upload_binaries.py b/scripts/upload_binaries.py
new file mode 100644
index 000000000..b595d27ed
--- /dev/null
+++ b/scripts/upload_binaries.py
@@ -0,0 +1,39 @@
+import os
+import boto
+import logging
+from boto.s3 import key
+
+import upload
+import version
+
+releases = [
+ 'hawkthorne-win-x64.zip',
+ 'hawkthorne-win-x86.zip',
+ 'hawkthorne-osx.zip',
+ 'hawkthorne.love',
+]
+
+
+def main():
+ logging.basicConfig(level=logging.INFO)
+ c = boto.connect_s3()
+ b = c.get_bucket('files.projecthawkthorne.com')
+
+ path = os.path.join('releases', 'v' + version.next_version())
+
+ for item in releases:
+ upload.upload_path(b, path, os.path.join('build', item))
+
+ if 'TRAVIS' not in os.environ:
+ logging.info('[DRYRUN] Create release symlinks')
+ return
+
+ for item in releases:
+ k = b.get_key("releases/latest/{}".format(release))
+ k.set_redirect("/releases/{}/{}".format(args.version, release))
+ k.set_acl('public-read')
+
+
+if __name__ == "__main__":
+ main()
+
diff --git a/scripts/version.py b/scripts/version.py
index 7ac4a8aae..97a8dd4ea 100644
--- a/scripts/version.py
+++ b/scripts/version.py
@@ -2,51 +2,37 @@
Bump the version number
"""
import os
+import boto
import argparse
+s3 = boto.connect_s3()
+
def current_version():
x, y, z = current_version_tuple()
return "{0}.{1}.{2}".format(x,y,z)
+def next_version():
+ x, y, z = current_version_tuple()
+ return "{0}.{1}.{2}".format(x,y,int(z) + 1)
+
+def prev_version():
+ x, y, z = current_version_tuple()
+ return "{0}.{1}.{2}".format(x,y,int(z) - 1)
+
+
def current_version_tuple():
- for line in open('src/conf.lua'):
- line = line.strip()
- if 't.title' not in line:
- continue
- _, full_title = line.replace('"', '').split('=')
- title, current = full_title.strip().rsplit(' ', 1)
- return current.split('.')
+ bucket = s3.get_bucket("files.projecthawkthorne.com")
+ key = bucket.get_key("releases/latest/hawkthorne-osx.zip")
+ redirect = key.get_redirect()
+ _, _, version, _ = redirect.split('/')
+ return tuple(version.replace('v', '').split('.'))
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('action', choices=['next', 'current', 'previous'])
parser.add_argument('--sparkle', action='store_true', default=False)
- args = parser.parse_args()
-
- x, y, z = current_version_tuple()
-
- if args.action == 'next':
- z = int(z) + 1
- elif args.action == 'previous':
- z = int(z) - 1
- else:
- z = int(z)
-
- version = "{0}.{1}.{2}".format(x,y,z)
-
- if not version:
- print "Could not find version number"
- exit(1)
-
- if version == '0.8.0':
- print "This is the LOVE version, not safe"
- exit(1)
-
- if args.sparkle:
- version = version.replace("v", "")
- print version
- exit(0)
+ print(current_version_tuple())
diff --git a/src/conf.lua b/src/conf.lua
index 6aee1a842..3ec663cde 100644
--- a/src/conf.lua
+++ b/src/conf.lua
@@ -1,13 +1,14 @@
function love.conf(t)
- t.title = "Journey to the Center of Hawkthorne v0.0.76"
- t.author = "Kyle Conroy"
+ t.title = "Journey to the Center of Hawkthorne v0.0.77"
+ t.url = "http://projecthawkthrone.com"
+ t.author = "https://github.com/hawkthorne?tab=members"
t.version = "0.8.0"
- t.identity = "hawkthorne"
+ t.identity = "hawkthorne_release"
t.screen.width = 1056
t.screen.height = 672
t.screen.fullscreen = false
t.console = false
t.modules.physics = false
t.modules.joystick = false
- t.release = false
-end
+ t.release = true
+end
\ No newline at end of file
diff --git a/src/main.lua b/src/main.lua
index d404c9cfe..6a135c6ea 100644
--- a/src/main.lua
+++ b/src/main.lua
@@ -36,7 +36,7 @@ if correctVersion then
local state, door, position = 'splash', nil, nil
-- SCIENCE!
- mixpanel.init("ac1c2db50f1332444fd0cafffd7a5543")
+ mixpanel.init("2b45c2198796f3e6e7fb8c47837e4963")
mixpanel.track('game.opened')
-- set settings
diff --git a/templates/Info.plist b/templates/Info.plist
new file mode 100644
index 000000000..dfa41d764
--- /dev/null
+++ b/templates/Info.plist
@@ -0,0 +1,48 @@
+
+
+
+
+ BuildMachineOSBuild
+ 12C54
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ love
+ CFBundleIconFile
+ Love.icns
+ CFBundleIdentifier
+ com.projecthawkthorne.journey
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Journey to the Center of Hawkthorne
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ HaWk
+ CFBundleVersion
+ {{ version }}
+ DTCompiler
+
+ DTPlatformBuild
+ 4G1004
+ DTPlatformVersion
+ GM
+ DTSDKBuild
+ 12C37
+ DTSDKName
+ macosx10.8
+ DTXcode
+ 0451
+ DTXcodeBuild
+ 4G1004
+ NSHumanReadableCopyright
+ 2006-2012 Hawkthorne Development Team
+ NSPrincipalClass
+ NSApplication
+ SUFeedURL
+ http://files.projecthawkthorne.com/appcast.xml
+ SUPublicDSAKeyFile
+ dsa_pub.pem
+
+
diff --git a/templates/conf.lua b/templates/conf.lua
new file mode 100644
index 000000000..f719afd5e
--- /dev/null
+++ b/templates/conf.lua
@@ -0,0 +1,14 @@
+function love.conf(t)
+ t.title = "Journey to the Center of Hawkthorne v{{ version }}"
+ t.url = "http://projecthawkthrone.com"
+ t.author = "https://github.com/hawkthorne?tab=members"
+ t.version = "0.8.0"
+ t.identity = "hawkthorne_release"
+ t.screen.width = 1056
+ t.screen.height = 672
+ t.screen.fullscreen = false
+ t.console = false
+ t.modules.physics = false
+ t.modules.joystick = false
+ t.release = true
+end