Created
December 2, 2015 03:30
-
-
Save nvahalik/c67b83f781298426d268 to your computer and use it in GitHub Desktop.
Drupal patch maker
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/local/bin/python | |
import json | |
import re | |
import urllib2 | |
import subprocess | |
class Issue: | |
def __init__(self, number): | |
self.number = number | |
self.data = {} | |
def loadResource(self): | |
if (len(self.data) != 0): | |
return self.data | |
response = urllib2.urlopen('https://www.drupal.org/api-d7/node/' + self.number + '.json') | |
data = response.read() | |
self.data = json.loads(data) | |
return self.data | |
def getNextComment(self): | |
data = self.loadResource() | |
return len(data['comments']) + 1 | |
def getPatchName(self): | |
return str(self.number) + '-' + str(self.getNextComment()) + '-' + self.getPatchMachineTitle() + '.patch'; | |
def getPatchMachineTitle(self): | |
data = self.loadResource() | |
title = data['title'].lower(); | |
# Remove special chars. | |
title = re.sub(r'[^ a-z]', '-', title) | |
# Grab the first 5 words. | |
return '_'.join(title.split(' ')[:5]) | |
def getVersion(self): | |
data = self.loadResource() | |
if (data['field_issue_version'][-4:] == "-dev"): | |
return data['field_issue_version'][:-4] | |
return data['field_issue_version'] | |
def getGitTicket(): | |
output = '' | |
branch_output = subprocess.Popen(['git', 'branch'], stdout=subprocess.PIPE) | |
while True: | |
line = branch_output.stdout.readline() | |
if line[0] == '*': | |
value = re.findall('\* (\d+)', line) | |
return value[0] | |
break | |
if __name__ == '__main__': | |
import sys | |
if (len(sys.argv) == 1): | |
ticket = getGitTicket() | |
# print ticket | |
project = Issue(ticket) | |
parent_branch = project.getVersion() | |
patch_filename = project.getPatchName() | |
interdiff_filename = str(ticket) + '-' + str(project.getNextComment()) + '-interdiff.txt' | |
subprocess.call('git diff ' + parent_branch + ' > ' + patch_filename, shell = True); | |
subprocess.call('git diff > ' + interdiff_filename, shell = True); | |
subprocess.call('/usr/bin/open .', shell = True); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment