old_contents: #!/usr/bin/env python
  
  # pip install requests
  # pip install Markdown
  
  import os
  import io
  import sys
  import subprocess
  import requests
  import json
  import markdown
  from datetime import datetime
  from string import Template
  
  SIGN_UPDATE = './bin/sign_update'
  PRIVATE_KEY_PATH = os.path.expanduser('~/Projects/sparkle_priv.pem')
  GITHUB_TOKEN_PATH = os.path.expanduser('~/.config/github.qvacua.release.token')
  
  file_path = sys.argv[1]
  bundle_version = sys.argv[2]
  marketing_version = sys.argv[3]
  tag_name = sys.argv[4]
  is_snapshot = True if len(sys.argv) > 5 and sys.argv[5] == "true" else False
  
  file_size = os.stat(file_path).st_size
  file_signature = subprocess.check_output([SIGN_UPDATE, file_path, PRIVATE_KEY_PATH]).strip()
  
  appcast_template_file = open('resources/appcast_template.xml', 'r')
  appcast_template = Template(appcast_template_file.read())
  appcast_template_file.close()
  
  token_file = open(GITHUB_TOKEN_PATH, 'r')
  token = token_file.read().strip()
  token_file.close()
  
  release_response = requests.get('https://api.github.com/repos/qvacua/vimr/releases/tags/{0}'.format(tag_name),
                                  params={'access_token': token})
  release_json = json.loads(release_response.content)
  
  title = release_json['name']
  download_url = release_json['assets'][0]['browser_download_url']
  release_notes_url = release_json['html_url']
  release_notes = release_json['body']
  
  appcast = appcast_template.substitute(
      title=title,
      release_notes=markdown.markdown(release_notes),
      release_notes_link=release_notes_url,
      publication_date=datetime.now().isoformat(),
      file_url=download_url,
      bundle_version=bundle_version,
      marketing_version=marketing_version,
      file_length=file_size,
      signature=file_signature
  )
  
  appcast_file_name = 'appcast_snapshot.xml' if is_snapshot else 'appcast.xml'
  
  with io.open('build/Release/{0}'.format(appcast_file_name), 'w+') as appcast_file:
      appcast_file.write(appcast)
  
new_contents: #!/usr/bin/env python
  
  # pip install requests
  # pip install Markdown
  
  import os
  import io
  import sys
  import subprocess
  import requests
  import json
  import markdown
  from datetime import datetime
  from string import Template
  
  SIGN_UPDATE = './bin/sign_update'
  PRIVATE_KEY_PATH = os.path.expanduser('~/.local/data/secrets/sparkle_priv.pem')
  GITHUB_TOKEN_PATH = os.path.expanduser('~/.local/data/secrets/github.qvacua.release.token')
  
  file_path = sys.argv[1]
  bundle_version = sys.argv[2]
  marketing_version = sys.argv[3]
  tag_name = sys.argv[4]
  is_snapshot = True if len(sys.argv) > 5 and sys.argv[5] == "true" else False
  
  file_size = os.stat(file_path).st_size
  file_signature = subprocess.check_output([SIGN_UPDATE, file_path, PRIVATE_KEY_PATH]).strip()
  
  appcast_template_file = open('resources/appcast_template.xml', 'r')
  appcast_template = Template(appcast_template_file.read())
  appcast_template_file.close()
  
  token_file = open(GITHUB_TOKEN_PATH, 'r')
  token = token_file.read().strip()
  token_file.close()
  
  release_response = requests.get('https://api.github.com/repos/qvacua/vimr/releases/tags/{0}'.format(tag_name),
                                  params={'access_token': token})
  release_json = json.loads(release_response.content)
  
  title = release_json['name']
  download_url = release_json['assets'][0]['browser_download_url']
  release_notes_url = release_json['html_url']
  release_notes = release_json['body']
  
  appcast = appcast_template.substitute(
      title=title,
      release_notes=markdown.markdown(release_notes),
      release_notes_link=release_notes_url,
      publication_date=datetime.now().isoformat(),
      file_url=download_url,
      bundle_version=bundle_version,
      marketing_version=marketing_version,
      file_length=file_size,
      signature=file_signature
  )
  
  appcast_file_name = 'appcast_snapshot.xml' if is_snapshot else 'appcast.xml'
  
  with io.open('build/Release/{0}'.format(appcast_file_name), 'w+') as appcast_file:
      appcast_file.write(appcast)
  
subject: Update location of some files in the build script