From 8cc40bd4a0a37152e7c566a7114d2bc8a6b0be9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20T=C3=B6nne?= <lukas.toenne@gmail.com> Date: Thu, 6 Mar 2014 12:38:08 +0100 Subject: [PATCH] Blender Diffusion tool for QtCreator: Prints a url to Diffusion on developer.blender.org for easy online linking and code reference. --- .../externaltools/qtc_blender_diffusion.py | 42 +++++++++++++++++++ .../externaltools/qtc_blender_diffusion.xml | 12 ++++++ 2 files changed, 54 insertions(+) create mode 100755 utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py create mode 100644 utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml diff --git a/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py new file mode 100755 index 0000000..915c949 --- /dev/null +++ b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +""" +Takes 1 arg + + qtc_blender_diffusion.py <file> <row> + +Currently GCC is assumed +""" + +import sys +import os +import subprocess + +SOURCE_FILE = sys.argv[-2] +SOURCE_ROW = sys.argv[-1] + +BASE_URL = "https://developer.blender.org/diffusion/B/browse" + +def main(): + dirname, filename = os.path.split(SOURCE_FILE) + + process = subprocess.Popen(["git", "rev-parse", "--symbolic-full-name", "--abbrev-ref", "@{u}"], stdout=subprocess.PIPE, cwd=dirname, universal_newlines=True) + output = process.communicate()[0] + branchname = output.rstrip().rsplit('/', 1)[-1] + + process = subprocess.Popen(["git", "rev-parse", "--show-toplevel"], stdout=subprocess.PIPE, cwd=dirname, universal_newlines=True) + output = process.communicate()[0] + toplevel = output.rstrip() + filepath = os.path.relpath(SOURCE_FILE, toplevel) + + url = '/'.join([BASE_URL, branchname, filepath]) + "$" + SOURCE_ROW + + print(url) + + # Maybe handy, but also annoying? + if "--browse" in sys.argv: + import webbrowser + webbrowser.open(url) + +if __name__ == "__main__": + main() diff --git a/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml new file mode 100644 index 0000000..9bf3b73 --- /dev/null +++ b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--Written on Mi. Mär. 5 19:21:33 2014 by Qt Creator 3.0.0--> +<externaltool id="qtc_blender_diffusion"> + <description>Print a URL to Diffusion on developer.blender.org for online reference</description> + <displayname>Blender Diffusion</displayname> + <category>Documentation</category> + <executable output="showinpane" error="showinpane" modifiesdocument="no"> + <path>/home/lukas/.config/QtProject/qtcreator/externaltools/qtc_blender_diffusion.py</path> + <arguments>%{CurrentDocument:FilePath} %{CurrentDocument:Row}</arguments> + <workingdirectory>%{CurrentDocument:Path}</workingdirectory> + </executable> +</externaltool> -- GitLab