Skip to content

Commit

Permalink
update pypt
Browse files Browse the repository at this point in the history
Signed-off-by: Chris Warrick <kwpolska@gmail.com>
  • Loading branch information
Kwpolska committed Jun 23, 2015
1 parent 3c7d840 commit 835fa81
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 13 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -30,3 +30,6 @@ nosetests.xml
.mr.developer.cfg
.project
.pydevproject

# GitHub token file
.pypt/gh-token
12 changes: 2 additions & 10 deletions .pypt/config
Expand Up @@ -4,6 +4,8 @@ PROJECT="Coil"
# Computer-friendly project name, [a-z0-9_\-]
PROJECTLC="coil"

# GitHub username.
GITUSER="Kwpolska"
# Git repository name. Using $PROJECTLC is recommended.
GITREPO=$PROJECTLC

Expand All @@ -17,13 +19,3 @@ LOCALETYPE="none"
# Python versions supported.
PYTHON2=1
PYTHON3=1

# AUR packages creation mode. One of:
# none Do not create nor upload AUR packages.
# python Create python{,2}-$PROJECTLC{,-git} packages (4 in total)
# app Create $AURNAME{,-git} packages with Python 3
AURTYPE="none"

# AUR package name. Defaults to $PROJECTLC. Ignored by `python`.
# WARNING: you still need to edit the PKGBUILDs.
AURNAME=$PROJECTLC
90 changes: 90 additions & 0 deletions .pypt/ghrel
@@ -0,0 +1,90 @@
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Kw’s Release Tools/Python Project Template
# GitHub Releases Creator
# Copyright © 2013-2015, Chris Warrick.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. 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.
#
# 3. Neither the name of the author of this software nor the names of
# contributors to this software may be used to endorse or promote
# products derived from this software without specific prior written
# consent.
#
# 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.

# Arguments:
# FILE BASEDIR REPO TAG

"""
Create GitHub releases out of changelogs.
Usage: .pypt/commitlog FILE BASEDIR REPO TAG, where
FILE is the path to the file to use, which can be
a plain .md file or a CMFN file,
BASEDIR is the project directory,
REPO is the full GitHub repository name (user/repo),
TAG is the tag to write to.
All paths should be absolute.
"""

import re
import requests
import json
from os.path import join as pjoin
from sys import argv

_script, FILE, BASEDIR, REPO, TAG = argv

with open(pjoin(BASEDIR, '.pypt', 'gh-token')) as fh:
TOKEN = fh.read().strip()

HEADERS = {
'User-Agent': 'Kwpolska/python-project-template',
'Authorization': 'token ' + TOKEN,
}

with open(FILE) as fh:
fdata = fh.read()
e = re.findall(
'#~ CHANGELOG MESSAGE START ~#\n(.*?)\n#~ CHANGELOG MESSAGE END ~#',
fdata, flags=re.S)

if e:
# parse as a CMFN file, replace backticks (reST->Markdown)
message = e[0].replace('``', '`')
else:
# parse as a plain Markdown file
message = fdata


r = requests.post(
'https://api.github.com/repos/{0}/releases'.format(REPO),
data=json.dumps({'tag_name': TAG, 'body': message}),
headers=HEADERS)

if r.status_code == 200:
print("GitHub Release created: {0}".format(r.json()['url']))
else:
print("GitHub Release failed: {0}".format(r.text))
exit(1)
8 changes: 5 additions & 3 deletions release
Expand Up @@ -193,12 +193,14 @@ cleanup

git add -A --ignore-errors .

git commit -asF $cmfn"commit"

cleanup_cmfn
git commit -asF $cmfn"-commit"

git flow release finish $version
git push
git push --tags

.pypt/ghrel $cmfn $PWD $GITUSER/$GTIREPO v$version

cleanup_cmfn

status "Done!"

0 comments on commit 835fa81

Please sign in to comment.