diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6e20aea..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -README.html -README.mediawiki -.*.sw? -img/*.blend? -__pycache__ diff --git a/Makefile b/Makefile deleted file mode 100644 index 713f4c8..0000000 --- a/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -test: - cd dev; ./replay - -README.mediawiki: README.md meshlint.py mkblenderwiki - ./mkblenderwiki README.md > $@ - xclip < $@ - firefox-bin "`./mkblenderwiki --wiki-edit-url`" diff --git a/README.md b/README.md index 8673b31..3378421 100644 --- a/README.md +++ b/README.md @@ -63,13 +63,13 @@ But I realize that not everyone has `git` or an operating system capable of symlinking. So, for those that can't: You can simply download the -[meshlint.py](https://raw.github.com/ryanjosephking/meshlint/master/meshlint.py) +[__init__.py](https://raw.github.com/ryanjosephking/meshlint/master/__init__.py) script directly. (And re-visit that URL for the newest version, later on.) Installing ---------- -The super-awesome way is to directly symlink `meshlint.py` into your [Blender +The super-awesome way is to directly symlink `__init__.py` into your [Blender Addons Dir](http://wiki.blender.org/index.php/Doc:2.6/Manual/Introduction/Installing_Blender/DirectoryLayout). The advantage is that the previous section's `git pull` will download the @@ -82,7 +82,7 @@ Addon...` screen.") Hit `Ctrl+Alt+u` to load up the User Preferences (I always use the keystroke for this because of the occasional time where you miss, using the `File` menu, and click `Save User Settings`. Click the `Install Addon...` button at the -bottom, then navigate to your `meshlint.py` script. +bottom, then navigate to your `__init__.py` script. ![The Enable Checkbox](meshlint/raw/master/img/enable-checkbox.png "The Enable checkbox.") diff --git a/meshlint.py b/__init__.py similarity index 91% rename from meshlint.py rename to __init__.py index 49726fd..cf2708f 100644 --- a/meshlint.py +++ b/__init__.py @@ -17,9 +17,9 @@ bl_info = { "name": "MeshLint: Like Spell-checking for your Meshes", - "author": "rking", + "author": "rking (Port to 2.80 Sav Martin)", "version": (1, 0), - "blender": (2, 6, 3), + "blender": (2, 80, 0), "location": "Object Data properties > MeshLint", "description": "Check objects for: Tris / Ngons / Nonmanifoldness / etc", "warning": "", @@ -169,19 +169,46 @@ def check_interior_faces(self): # translated from editmesh_select.c bad['faces'].append(f.index) return bad + CHECKS.append({ + 'symbol': 'three_poles', + 'label': '3-edge Poles', + 'definition': 'A vertex with 3 edges connected to it. Also known as an N-Pole', + 'default': False + }) + def check_three_poles(self): + bad = { 'verts': [] } + for v in self.b.verts: + if 3 == len(v.link_edges): + bad['verts'].append(v.index) + return bad + + CHECKS.append({ + 'symbol': 'five_poles', + 'label': '5-edge Poles', + 'definition': 'A vertex with 5 edges connected to it. Also known as an E-Pole', + 'default': False + }) + + def check_five_poles(self): + bad = {'verts': [] } + for v in self.b.verts: + if 5 == len(v.link_edges): + bad['verts'].append(v.index) + return bad + CHECKS.append({ 'symbol': 'sixplus_poles', 'label': '6+-edge Poles', 'definition': 'A vertex with 6 or more edges connected to it. Generally this is not something you want, but since some kinds of extrusions will legitimately cause such a pole (imagine extruding each face of a Cube outward, the inner corners are rightful 6+-poles). Still, if you don\'t know for sure that you want them, it is good to enable this', - 'default': False + 'default': True }) + def check_sixplus_poles(self): bad = { 'verts': [] } for v in self.b.verts: if 5 < len(v.link_edges): bad['verts'].append(v.index) return bad - # [Your great new idea here] -> Tell me about it: rking@panoptic.com # ...plus the 'Default Name' check. @@ -201,15 +228,27 @@ def select_indices(self, elemtype, indices): print("MeshLint says: Huh?? → elemtype of %s." % elemtype) def select_vert(self, index): + ob = bpy.context.edit_object + me = ob.data + bm = bmesh.from_edit_mesh(me) + bm.verts.ensure_lookup_table() #sav self.b.verts[index].select = True def select_edge(self, index): + ob = bpy.context.edit_object + me = ob.data + bm = bmesh.from_edit_mesh(me) + bm.edges.ensure_lookup_table() #sav edge = self.b.edges[index] edge.select = True for each in edge.verts: self.select_vert(each.index) def select_face(self, index): + ob = bpy.context.edit_object + me = ob.data + bm = bmesh.from_edit_mesh(me) + bm.faces.ensure_lookup_table() #sav face = self.b.faces[index] face.select = True for each in face.edges: @@ -343,16 +382,17 @@ def poll(cls, context): def execute(self, context): if MeshLintVitalizer.is_live: - bpy.app.handlers.scene_update_post.remove(global_repeated_check) + bpy.app.handlers.depsgraph_update_post.remove(global_repeated_check) #sav MeshLintVitalizer.is_live = False else: - bpy.app.handlers.scene_update_post.append(global_repeated_check) + bpy.app.handlers.depsgraph_update_post.append(global_repeated_check) #sav MeshLintVitalizer.is_live = True return {'FINISHED'} def activate(obj): - bpy.context.scene.objects.active = obj + # bpy.context.scene.objects.active = obj #sav + bpy.context.view_layer.objects.active = obj class MeshLintObjectLooper: @@ -381,7 +421,7 @@ def examine_all_selected_meshes(self): self.troubled_meshes.append(obj) priorities = [self.original_active] + self.troubled_meshes for obj in priorities: - if obj.select: + if obj.select_get: activate(obj) break self.handle_troubled_meshes() @@ -436,7 +476,7 @@ def handle_troubled_meshes(self): if not obj in self.troubled_meshes: obj.select = False - class MeshLintControl(bpy.types.Panel): + class MESH_PT_MeshLintControl(bpy.types.Panel): bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = 'data' @@ -493,14 +533,14 @@ def add_criticism(self, layout, context): label = depluralize(count=count, string=label) reward = 'ERROR' col.row().label(text=label, icon=reward) - name_crits = MeshLintControl.build_object_criticisms( + name_crits = MESH_PT_MeshLintControl.build_object_criticisms( bpy.context.selected_objects, total_problems) for crit in name_crits: - col.row().label(crit) + col.row().label(text=crit) def add_toggle_buttons(self, layout, context): col = layout.column() - col.row().label('Toggle:') + col.row().label(text='Toggle:') for lint in MeshLintAnalyzer.CHECKS: prop_name = lint['check_prop'] is_enabled = getattr(context.scene, prop_name) @@ -519,10 +559,10 @@ def add_crit(crit): criticisms.append('...%s "%s" %s.' % ( conjunction, obj.name, crit)) for obj in objects: - if MeshLintControl.has_unapplied_scale(obj.scale): + if MESH_PT_MeshLintControl.has_unapplied_scale(obj.scale): add_crit('has an unapplied scale') already_complained = True - if MeshLintControl.is_bad_name(obj.name): + if MESH_PT_MeshLintControl.is_bad_name(obj.name): add_crit('is not a great name') already_complained = True return criticisms @@ -580,20 +620,20 @@ class TestControl(unittest.TestCase): def test_scale_application(self): for bad in [ [0,0,0], [1,2,3], [1,1,1.1] ]: self.assertEqual( - True, MeshLintControl.has_unapplied_scale(bad), + True, MESH_PT_MeshLintControl.has_unapplied_scale(bad), "Unapplied scale: %s" % bad) self.assertEqual( - False, MeshLintControl.has_unapplied_scale([1,1,1]), + False, MESH_PT_MeshLintControl.has_unapplied_scale([1,1,1]), "Applied scale (1,1,1)") def test_bad_names(self): for bad in [ 'Cube', 'Cube.001', 'Sphere.123' ]: self.assertEqual( - True, MeshLintControl.is_bad_name(bad), + True, MESH_PT_MeshLintControl.is_bad_name(bad), "Bad name: %s" % bad) for ok in [ 'Whatever', 'NumbersOkToo.001' ]: self.assertEqual( - False, MeshLintControl.is_bad_name(ok), + False, MESH_PT_MeshLintControl.is_bad_name(ok), "OK name: %s" % ok) @@ -700,7 +740,7 @@ def __init__(self, name, scale=Vector([1,1,1])): class TestUI(unittest.TestCase): def test_complaints(self): - f = MeshLintControl.build_object_criticisms + f = MESH_PT_MeshLintControl.build_object_criticisms self.assertEqual([], f([], 0), 'Nothing selected') self.assertEqual( [], @@ -827,17 +867,41 @@ def run(self, test): this condition.""") + + classes = ( + # QuietTestRunner, + # QuietOnSuccessTestResult, + # TestUI,MockBlenderObject, + # TestAnalysis, + # TestUtilities, + # TestControl, + MESH_PT_MeshLintControl, + MeshLintObjectDeselector, + MeshLintSelector, + # MeshLintObjectLooper, + MeshLintVitalizer, + # MeshLintContinuousChecker, + # MeshLintAnalyzer + ) + + def register(): - bpy.utils.register_module(__name__) + from bpy.utils import register_class + for cls in classes: + register_class(cls) + + def unregister(): - bpy.utils.unregister_module(__name__) + from bpy.utils import unregister_class + for cls in classes: + unregister_class(cls) - if __name__ == '__main__': - register() + if __name__ == "__main__": + register() except: # OK, I totally don't get why this is necessary. But otherwise I am not # seeing error text. Causes the extra indent over all above code. =( diff --git a/dev/blendev.xns b/dev/blendev.xns deleted file mode 100644 index 948e6dd..0000000 --- a/dev/blendev.xns +++ /dev/null @@ -1,661 +0,0 @@ -#################################### -# System information # -#################################### -# Date: 2012:04:09 -# Time: 17:40:07 -# Xnee program: cnee -# Xnee version: 3.12 -# Xnee home: http://www.gnu.org/software/xnee/ -# Xnee info mailing list: info-xnee@gnu.org -# Xnee bug mailing list: bug-xnee@gnu.org -# X version: 11 -# X revision: 0 -# X vendor: The X.Org Foundation -# X vendor release: 11102000 -# Record version major: 1 -# Record version minor: 13 -# OS name: Linux -# OS Release: 3.2.12-gentoo -# OS Version: #7 SMP Fri Apr 6 18:32:59 MDT 2012 -# Machine: x86_64 -# Nodename: tsiyon -# Display name: :0 -# Dimension: 1920x1080 - - - -############################################## -# Xnee application arguments # -############################################## -# cnee --record --events-to-record 800 --mouse --keyboard -o blendev.xns -v - - -############################################## -# Displays # -############################################## -# display :0 -# distribute - - -############################################## -# Files # -############################################## -# out-file blendev.xns -# err-file stderr - - -############################################## -# Key Grabs # -############################################## -# stop-key 0 -# pause-key 0 -# resume-key 0 -# insert-key 0 -# exec-key 0 -# exec-program-key xnee-exec-no-program - - -############################################## -# Recording limits etc # -############################################## - -events-to-record 800 -data-to-record -1 -seconds-to-record -1 -# first-last - -# Record all (including current) clients or only future ones -all-clients -# future-clients - -# Store the starting mouse position -# store-mouse-position - - -############################################## -# Resolution # -############################################## - -# Resolution -#recorded-resolution 1920x1080 -#replay-resolution 1x1 -#resolution-adjustment 0 - - -############################################## -# Speed # -############################################## - -# Speed -#speed-percent 100 - - -############################################## -# Replaying limits etc # -############################################## - -max-threshold 20 -min-threshold 20 -tot-threshold 40 - - -############################################## -# Feedback # -############################################## -#feedback-none -#feedback-stderr -feedback-xosd - - - -############################################## -# Various # -############################################## - -# Plugin file - -# Modes (currently not used) -# synchronised-replay - -# Replay offset -#replay-offset 0x0 - -# Human printout of X11 data (instead of Xnee format) -# human-printout - -# Delay before starting record/replay -# time 0 - -# No recording of ReparentNotify -# no-reparent-recording - -# Various -######################################### -# Record settings # -######################################### -# data_flags 7 -# rState 0x60a010 -# xids[0] 3 -# xids[1] 0 -# Number of Ranges 2 -# RecordRange[0] -request-range 0-0 -reply-range 0-0 -extension-request-major-range 0-0 -extension-request-minor-range 0-0 -extension-reply-major-range 0-0 -extension-reply-minor-range 0-0 -delivered-event-range 21-21 -device-event-range 2-6 -error-range 0-0 -# RecordRange[1] -request-range 0-0 -reply-range 0-0 -extension-request-major-range 0-0 -extension-request-minor-range 0-0 -extension-reply-major-range 0-0 -extension-reply-minor-range 0-0 -delivered-event-range 0-0 -device-event-range 98-103 -error-range 0-0 -7,2,0,0,0,67,0,10581940,8,Logitech USB Keyboard -0,2,0,0,0,67,0,10581940 -6,2,0,0,0,67,0,10581940,3,Virtual core keyboard -7,3,0,0,0,67,0,10582084,8,Logitech USB Keyboard -0,3,0,0,0,67,0,10582084 -6,3,0,0,0,67,0,10582084,3,Virtual core keyboard -7,2,0,0,0,64,0,10582516,8,Logitech USB Keyboard -0,2,0,0,0,64,0,10582516 -6,2,0,0,0,64,0,10582516,3,Virtual core keyboard -7,2,0,0,0,69,0,10582820,8,Logitech USB Keyboard -0,2,0,0,0,69,0,10582820 -6,2,0,0,0,69,0,10582820,3,Virtual core keyboard -7,3,0,0,0,69,0,10582956,8,Logitech USB Keyboard -0,3,0,0,0,69,0,10582956 -6,3,0,0,0,69,0,10582956,3,Virtual core keyboard -7,3,0,0,0,64,0,10583092,8,Logitech USB Keyboard -0,3,0,0,0,64,0,10583092 -6,3,0,0,0,64,0,10583092,3,Virtual core keyboard -7,6,767,768,0,0,0,10583396,10,'Logitech USB Receiver' -0,6,767,767,0,0,0,10583396 -6,6,767,767,0,0,0,10583396,2,'Virtual core pointer' -7,6,767,767,0,0,0,10583404,10,'Logitech USB Receiver' -0,6,756,758,0,0,0,10583404 -6,6,756,758,0,0,0,10583404,2,'Virtual core pointer' -7,6,756,758,0,0,0,10583412,10,'Logitech USB Receiver' -0,6,742,747,0,0,0,10583412 -6,6,742,747,0,0,0,10583412,2,'Virtual core pointer' -7,6,742,747,0,0,0,10583420,10,'Logitech USB Receiver' -0,6,727,734,0,0,0,10583420 -6,6,727,734,0,0,0,10583420,2,'Virtual core pointer' -7,6,727,734,0,0,0,10583428,10,'Logitech USB Receiver' -0,6,710,720,0,0,0,10583428 -6,6,710,720,0,0,0,10583428,2,'Virtual core pointer' -7,6,710,720,0,0,0,10583436,10,'Logitech USB Receiver' -0,6,691,706,0,0,0,10583436 -6,6,691,706,0,0,0,10583436,2,'Virtual core pointer' -7,6,691,706,0,0,0,10583444,10,'Logitech USB Receiver' -0,6,674,693,0,0,0,10583444 -6,6,674,693,0,0,0,10583444,2,'Virtual core pointer' -7,6,674,693,0,0,0,10583452,10,'Logitech USB Receiver' -0,6,661,680,0,0,0,10583452 -6,6,661,680,0,0,0,10583452,2,'Virtual core pointer' -7,6,661,680,0,0,0,10583460,10,'Logitech USB Receiver' -0,6,649,667,0,0,0,10583460 -6,6,649,667,0,0,0,10583460,2,'Virtual core pointer' -7,6,649,667,0,0,0,10583468,10,'Logitech USB Receiver' -0,6,638,655,0,0,0,10583468 -6,6,638,655,0,0,0,10583468,2,'Virtual core pointer' -7,6,638,655,0,0,0,10583476,10,'Logitech USB Receiver' -0,6,629,644,0,0,0,10583476 -6,6,629,644,0,0,0,10583476,2,'Virtual core pointer' -7,6,629,644,0,0,0,10583484,10,'Logitech USB Receiver' -0,6,624,637,0,0,0,10583484 -6,6,624,637,0,0,0,10583484,2,'Virtual core pointer' -7,6,624,637,0,0,0,10583492,10,'Logitech USB Receiver' -0,6,620,630,0,0,0,10583492 -6,6,620,630,0,0,0,10583492,2,'Virtual core pointer' -7,6,620,630,0,0,0,10583500,10,'Logitech USB Receiver' -0,6,617,626,0,0,0,10583500 -6,6,617,626,0,0,0,10583500,2,'Virtual core pointer' -7,6,617,626,0,0,0,10583508,10,'Logitech USB Receiver' -0,6,613,622,0,0,0,10583508 -6,6,613,622,0,0,0,10583508,2,'Virtual core pointer' -7,6,613,622,0,0,0,10583516,10,'Logitech USB Receiver' -0,6,610,619,0,0,0,10583516 -6,6,610,619,0,0,0,10583516,2,'Virtual core pointer' -7,6,610,619,0,0,0,10583524,10,'Logitech USB Receiver' -0,6,608,617,0,0,0,10583524 -6,6,608,617,0,0,0,10583524,2,'Virtual core pointer' -7,6,608,617,0,0,0,10583532,10,'Logitech USB Receiver' -0,6,605,615,0,0,0,10583532 -6,6,605,615,0,0,0,10583532,2,'Virtual core pointer' -7,6,605,615,0,0,0,10583540,10,'Logitech USB Receiver' -0,6,603,609,0,0,0,10583540 -6,6,603,609,0,0,0,10583540,2,'Virtual core pointer' -7,6,603,609,0,0,0,10583548,10,'Logitech USB Receiver' -0,6,598,603,0,0,0,10583548 -6,6,598,603,0,0,0,10583548,2,'Virtual core pointer' -7,6,598,603,0,0,0,10583556,10,'Logitech USB Receiver' -0,6,593,594,0,0,0,10583556 -6,6,593,594,0,0,0,10583556,2,'Virtual core pointer' -7,6,593,594,0,0,0,10583564,10,'Logitech USB Receiver' -0,6,588,586,0,0,0,10583564 -6,6,588,586,0,0,0,10583564,2,'Virtual core pointer' -7,6,588,586,0,0,0,10583572,10,'Logitech USB Receiver' -0,6,582,579,0,0,0,10583572 -6,6,582,579,0,0,0,10583572,2,'Virtual core pointer' -7,6,582,579,0,0,0,10583580,10,'Logitech USB Receiver' -0,6,578,572,0,0,0,10583580 -6,6,578,572,0,0,0,10583580,2,'Virtual core pointer' -7,6,578,572,0,0,0,10583588,10,'Logitech USB Receiver' -0,6,570,565,0,0,0,10583588 -6,6,570,565,0,0,0,10583588,2,'Virtual core pointer' -7,6,570,565,0,0,0,10583596,10,'Logitech USB Receiver' -0,6,566,559,0,0,0,10583596 -6,6,566,559,0,0,0,10583596,2,'Virtual core pointer' -7,6,566,559,0,0,0,10583604,10,'Logitech USB Receiver' -0,6,560,554,0,0,0,10583604 -6,6,560,554,0,0,0,10583604,2,'Virtual core pointer' -7,6,560,554,0,0,0,10583612,10,'Logitech USB Receiver' -0,6,554,549,0,0,0,10583612 -6,6,554,549,0,0,0,10583612,2,'Virtual core pointer' -7,6,554,549,0,0,0,10583620,10,'Logitech USB Receiver' -0,6,548,544,0,0,0,10583620 -6,6,548,544,0,0,0,10583620,2,'Virtual core pointer' -7,6,548,544,0,0,0,10583628,10,'Logitech USB Receiver' -0,6,542,540,0,0,0,10583628 -6,6,542,540,0,0,0,10583628,2,'Virtual core pointer' -7,6,542,540,0,0,0,10583636,10,'Logitech USB Receiver' -0,6,535,534,0,0,0,10583636 -6,6,535,534,0,0,0,10583636,2,'Virtual core pointer' -7,6,535,534,0,0,0,10583644,10,'Logitech USB Receiver' -0,6,527,528,0,0,0,10583644 -6,6,527,528,0,0,0,10583644,2,'Virtual core pointer' -7,6,527,528,0,0,0,10583652,10,'Logitech USB Receiver' -0,6,520,522,0,0,0,10583652 -6,6,520,522,0,0,0,10583652,2,'Virtual core pointer' -7,6,520,522,0,0,0,10583660,10,'Logitech USB Receiver' -0,6,512,517,0,0,0,10583660 -6,6,512,517,0,0,0,10583660,2,'Virtual core pointer' -7,6,512,517,0,0,0,10583668,10,'Logitech USB Receiver' -0,6,506,513,0,0,0,10583668 -6,6,506,513,0,0,0,10583668,2,'Virtual core pointer' -7,6,506,513,0,0,0,10583676,10,'Logitech USB Receiver' -0,6,504,508,0,0,0,10583676 -6,6,504,508,0,0,0,10583676,2,'Virtual core pointer' -7,6,504,508,0,0,0,10583684,10,'Logitech USB Receiver' -0,6,502,507,0,0,0,10583684 -6,6,502,507,0,0,0,10583684,2,'Virtual core pointer' -7,6,502,507,0,0,0,10583692,10,'Logitech USB Receiver' -0,6,499,504,0,0,0,10583692 -6,6,499,504,0,0,0,10583692,2,'Virtual core pointer' -7,6,499,504,0,0,0,10583700,10,'Logitech USB Receiver' -0,6,496,501,0,0,0,10583700 -6,6,496,501,0,0,0,10583700,2,'Virtual core pointer' -7,6,496,501,0,0,0,10583708,10,'Logitech USB Receiver' -0,6,492,498,0,0,0,10583708 -6,6,492,498,0,0,0,10583708,2,'Virtual core pointer' -7,6,492,498,0,0,0,10583716,10,'Logitech USB Receiver' -0,6,487,494,0,0,0,10583716 -6,6,487,494,0,0,0,10583716,2,'Virtual core pointer' -7,6,487,494,0,0,0,10583724,10,'Logitech USB Receiver' -0,6,479,489,0,0,0,10583724 -6,6,479,489,0,0,0,10583724,2,'Virtual core pointer' -7,6,479,489,0,0,0,10583732,10,'Logitech USB Receiver' -0,6,472,482,0,0,0,10583732 -6,6,472,482,0,0,0,10583732,2,'Virtual core pointer' -7,6,472,482,0,0,0,10583740,10,'Logitech USB Receiver' -0,6,464,475,0,0,0,10583740 -6,6,464,475,0,0,0,10583740,2,'Virtual core pointer' -7,6,464,475,0,0,0,10583748,10,'Logitech USB Receiver' -0,6,456,468,0,0,0,10583748 -6,6,456,468,0,0,0,10583748,2,'Virtual core pointer' -7,6,456,468,0,0,0,10583756,10,'Logitech USB Receiver' -0,6,449,460,0,0,0,10583756 -6,6,449,460,0,0,0,10583756,2,'Virtual core pointer' -7,6,449,460,0,0,0,10583764,10,'Logitech USB Receiver' -0,6,442,452,0,0,0,10583764 -6,6,442,452,0,0,0,10583764,2,'Virtual core pointer' -7,6,442,452,0,0,0,10583772,10,'Logitech USB Receiver' -0,6,436,446,0,0,0,10583772 -6,6,436,446,0,0,0,10583772,2,'Virtual core pointer' -7,6,436,446,0,0,0,10583780,10,'Logitech USB Receiver' -0,6,431,441,0,0,0,10583780 -6,6,431,441,0,0,0,10583780,2,'Virtual core pointer' -7,6,431,441,0,0,0,10583788,10,'Logitech USB Receiver' -0,6,427,436,0,0,0,10583788 -6,6,427,436,0,0,0,10583788,2,'Virtual core pointer' -7,6,427,436,0,0,0,10583796,10,'Logitech USB Receiver' -0,6,425,433,0,0,0,10583796 -6,6,425,433,0,0,0,10583796,2,'Virtual core pointer' -7,6,425,433,0,0,0,10583812,10,'Logitech USB Receiver' -0,6,425,431,0,0,0,10583812 -6,6,425,431,0,0,0,10583812,2,'Virtual core pointer' -7,2,0,0,0,64,0,10583980,8,Logitech USB Keyboard -0,2,0,0,0,64,0,10583980 -6,2,0,0,0,64,0,10583980,3,Virtual core keyboard -7,2,0,0,0,27,0,10584396,8,Logitech USB Keyboard -0,2,0,0,0,27,0,10584396 -6,2,0,0,0,27,0,10584396,3,Virtual core keyboard -7,3,0,0,0,27,0,10584524,8,Logitech USB Keyboard -0,3,0,0,0,27,0,10584524 -6,3,0,0,0,27,0,10584524,3,Virtual core keyboard -7,3,0,0,0,64,0,10584668,8,Logitech USB Keyboard -0,3,0,0,0,64,0,10584668 -6,3,0,0,0,64,0,10584668,3,Virtual core keyboard -7,2,0,0,0,36,0,10584900,8,Logitech USB Keyboard -0,2,0,0,0,36,0,10584900 -6,2,0,0,0,36,0,10584900,3,Virtual core keyboard -7,3,0,0,0,36,0,10584972,8,Logitech USB Keyboard -0,3,0,0,0,36,0,10584972 -6,3,0,0,0,36,0,10584972,3,Virtual core keyboard -7,2,0,0,0,64,0,10585244,8,Logitech USB Keyboard -0,2,0,0,0,64,0,10585244 -6,2,0,0,0,64,0,10585244,3,Virtual core keyboard -7,2,0,0,0,33,0,10586484,8,Logitech USB Keyboard -0,2,0,0,0,33,0,10586484 -6,2,0,0,0,33,0,10586484,3,Virtual core keyboard -7,3,0,0,0,33,0,10586564,8,Logitech USB Keyboard -0,3,0,0,0,33,0,10586564 -6,3,0,0,0,33,0,10586564,3,Virtual core keyboard -7,3,0,0,0,64,0,10586732,8,Logitech USB Keyboard -0,3,0,0,0,64,0,10586732 -6,3,0,0,0,64,0,10586732,3,Virtual core keyboard -7,6,425,431,0,0,0,10587548,10,'Logitech USB Receiver' -0,6,447,431,0,0,0,10587548 -6,6,447,431,0,0,0,10587548,2,'Virtual core pointer' -7,6,447,431,0,0,0,10587556,10,'Logitech USB Receiver' -0,6,475,431,0,0,0,10587556 -6,6,475,431,0,0,0,10587556,2,'Virtual core pointer' -7,6,475,431,0,0,0,10587564,10,'Logitech USB Receiver' -0,6,505,431,0,0,0,10587564 -6,6,505,431,0,0,0,10587564,2,'Virtual core pointer' -7,6,505,431,0,0,0,10587572,10,'Logitech USB Receiver' -0,6,536,431,0,0,0,10587572 -6,6,536,431,0,0,0,10587572,2,'Virtual core pointer' -7,6,536,431,0,0,0,10587580,10,'Logitech USB Receiver' -0,6,565,431,0,0,0,10587580 -6,6,565,431,0,0,0,10587580,2,'Virtual core pointer' -7,6,565,431,0,0,0,10587588,10,'Logitech USB Receiver' -0,6,596,433,0,0,0,10587588 -6,6,596,433,0,0,0,10587588,2,'Virtual core pointer' -7,6,596,433,0,0,0,10587596,10,'Logitech USB Receiver' -0,6,628,435,0,0,0,10587596 -6,6,628,435,0,0,0,10587596,2,'Virtual core pointer' -7,6,628,435,0,0,0,10587604,10,'Logitech USB Receiver' -0,6,660,438,0,0,0,10587604 -6,6,660,438,0,0,0,10587604,2,'Virtual core pointer' -7,6,660,438,0,0,0,10587612,10,'Logitech USB Receiver' -0,6,692,443,0,0,0,10587612 -6,6,692,443,0,0,0,10587612,2,'Virtual core pointer' -7,6,692,443,0,0,0,10587620,10,'Logitech USB Receiver' -0,6,727,448,0,0,0,10587620 -6,6,727,448,0,0,0,10587620,2,'Virtual core pointer' -7,6,727,448,0,0,0,10587628,10,'Logitech USB Receiver' -0,6,766,455,0,0,0,10587628 -6,6,766,455,0,0,0,10587628,2,'Virtual core pointer' -7,6,766,455,0,0,0,10587636,10,'Logitech USB Receiver' -0,6,813,463,0,0,0,10587636 -6,6,813,463,0,0,0,10587636,2,'Virtual core pointer' -7,6,813,463,0,0,0,10587644,10,'Logitech USB Receiver' -0,6,864,471,0,0,0,10587644 -6,6,864,471,0,0,0,10587644,2,'Virtual core pointer' -7,6,864,471,0,0,0,10587652,10,'Logitech USB Receiver' -0,6,919,482,0,0,0,10587652 -6,6,919,482,0,0,0,10587652,2,'Virtual core pointer' -7,6,919,482,0,0,0,10587660,10,'Logitech USB Receiver' -0,6,978,493,0,0,0,10587660 -6,6,978,493,0,0,0,10587660,2,'Virtual core pointer' -7,6,978,493,0,0,0,10587668,10,'Logitech USB Receiver' -0,6,1038,504,0,0,0,10587668 -6,6,1038,504,0,0,0,10587668,2,'Virtual core pointer' -7,6,1038,504,0,0,0,10587676,10,'Logitech USB Receiver' -0,6,1101,515,0,0,0,10587676 -6,6,1101,515,0,0,0,10587676,2,'Virtual core pointer' -7,6,1101,515,0,0,0,10587684,10,'Logitech USB Receiver' -0,6,1165,526,0,0,0,10587684 -6,6,1165,526,0,0,0,10587684,2,'Virtual core pointer' -7,6,1165,526,0,0,0,10587692,10,'Logitech USB Receiver' -0,6,1226,539,0,0,0,10587692 -6,6,1226,539,0,0,0,10587692,2,'Virtual core pointer' -7,6,1226,539,0,0,0,10587700,10,'Logitech USB Receiver' -0,6,1286,553,0,0,0,10587700 -6,6,1286,553,0,0,0,10587700,2,'Virtual core pointer' -7,6,1286,553,0,0,0,10587708,10,'Logitech USB Receiver' -0,6,1331,567,0,0,0,10587708 -6,6,1331,567,0,0,0,10587708,2,'Virtual core pointer' -7,6,1331,567,0,0,0,10587716,10,'Logitech USB Receiver' -0,6,1375,580,0,0,0,10587716 -6,6,1375,580,0,0,0,10587716,2,'Virtual core pointer' -7,6,1375,580,0,0,0,10587724,10,'Logitech USB Receiver' -0,6,1412,589,0,0,0,10587724 -6,6,1412,589,0,0,0,10587724,2,'Virtual core pointer' -7,6,1412,589,0,0,0,10587732,10,'Logitech USB Receiver' -0,6,1439,594,0,0,0,10587732 -6,6,1439,594,0,0,0,10587732,2,'Virtual core pointer' -7,6,1439,594,0,0,0,10587740,10,'Logitech USB Receiver' -0,6,1458,598,0,0,0,10587740 -6,6,1458,598,0,0,0,10587740,2,'Virtual core pointer' -7,6,1458,598,0,0,0,10587748,10,'Logitech USB Receiver' -0,6,1469,598,0,0,0,10587748 -6,6,1469,598,0,0,0,10587748,2,'Virtual core pointer' -7,6,1469,598,0,0,0,10587756,10,'Logitech USB Receiver' -0,6,1479,598,0,0,0,10587756 -6,6,1479,598,0,0,0,10587756,2,'Virtual core pointer' -7,6,1479,598,0,0,0,10587764,10,'Logitech USB Receiver' -0,6,1488,598,0,0,0,10587764 -6,6,1488,598,0,0,0,10587764,2,'Virtual core pointer' -7,6,1488,598,0,0,0,10587772,10,'Logitech USB Receiver' -0,6,1493,598,0,0,0,10587772 -6,6,1493,598,0,0,0,10587772,2,'Virtual core pointer' -7,6,1493,598,0,0,0,10587788,10,'Logitech USB Receiver' -0,6,1494,598,0,0,0,10587788 -6,6,1494,598,0,0,0,10587788,2,'Virtual core pointer' -7,6,1494,598,0,0,0,10587860,10,'Logitech USB Receiver' -0,6,1495,598,0,0,0,10587860 -6,6,1495,598,0,0,0,10587860,2,'Virtual core pointer' -7,6,1495,598,0,0,0,10587868,10,'Logitech USB Receiver' -0,6,1496,598,0,0,0,10587868 -6,6,1496,598,0,0,0,10587868,2,'Virtual core pointer' -7,6,1496,598,0,0,0,10587876,10,'Logitech USB Receiver' -0,6,1497,598,0,0,0,10587876 -6,6,1497,598,0,0,0,10587876,2,'Virtual core pointer' -7,6,1497,598,0,0,0,10587908,10,'Logitech USB Receiver' -0,6,1500,601,0,0,0,10587908 -6,6,1500,601,0,0,0,10587908,2,'Virtual core pointer' -7,6,1500,601,0,0,0,10587916,10,'Logitech USB Receiver' -0,6,1501,605,0,0,0,10587916 -6,6,1501,605,0,0,0,10587916,2,'Virtual core pointer' -7,6,1501,605,0,0,0,10587924,10,'Logitech USB Receiver' -0,6,1503,610,0,0,0,10587924 -6,6,1503,610,0,0,0,10587924,2,'Virtual core pointer' -7,6,1503,610,0,0,0,10587932,10,'Logitech USB Receiver' -0,6,1504,618,0,0,0,10587932 -6,6,1504,618,0,0,0,10587932,2,'Virtual core pointer' -7,6,1504,618,0,0,0,10587940,10,'Logitech USB Receiver' -0,6,1507,627,0,0,0,10587940 -6,6,1507,627,0,0,0,10587940,2,'Virtual core pointer' -7,6,1507,627,0,0,0,10587948,10,'Logitech USB Receiver' -0,6,1511,633,0,0,0,10587948 -6,6,1511,633,0,0,0,10587948,2,'Virtual core pointer' -7,6,1511,633,0,0,0,10587956,10,'Logitech USB Receiver' -0,6,1515,637,0,0,0,10587956 -6,6,1515,637,0,0,0,10587956,2,'Virtual core pointer' -7,6,1515,637,0,0,0,10587964,10,'Logitech USB Receiver' -0,6,1515,638,0,0,0,10587964 -6,6,1515,638,0,0,0,10587964,2,'Virtual core pointer' -7,6,1515,638,0,0,0,10587972,10,'Logitech USB Receiver' -0,6,1516,639,0,0,0,10587972 -6,6,1516,639,0,0,0,10587972,2,'Virtual core pointer' -7,6,1516,639,0,0,0,10588108,10,'Logitech USB Receiver' -0,6,1517,641,0,0,0,10588108 -6,6,1517,641,0,0,0,10588108,2,'Virtual core pointer' -7,6,1517,641,0,0,0,10588116,10,'Logitech USB Receiver' -0,6,1519,643,0,0,0,10588116 -6,6,1519,643,0,0,0,10588116,2,'Virtual core pointer' -7,6,1519,643,0,0,0,10588124,10,'Logitech USB Receiver' -0,6,1519,644,0,0,0,10588124 -6,6,1519,644,0,0,0,10588124,2,'Virtual core pointer' -7,6,1519,644,0,0,0,10588140,10,'Logitech USB Receiver' -0,6,1520,645,0,0,0,10588140 -6,6,1520,645,0,0,0,10588140,2,'Virtual core pointer' -7,6,1520,645,0,0,0,10588148,10,'Logitech USB Receiver' -0,6,1521,646,0,0,0,10588148 -6,6,1521,646,0,0,0,10588148,2,'Virtual core pointer' -7,6,1521,646,0,0,0,10588156,10,'Logitech USB Receiver' -0,6,1522,646,0,0,0,10588156 -6,6,1522,646,0,0,0,10588156,2,'Virtual core pointer' -7,6,1522,646,0,0,0,10588164,10,'Logitech USB Receiver' -0,6,1523,648,0,0,0,10588164 -6,6,1523,648,0,0,0,10588164,2,'Virtual core pointer' -7,6,1523,648,0,0,0,10588172,10,'Logitech USB Receiver' -0,6,1525,651,0,0,0,10588172 -6,6,1525,651,0,0,0,10588172,2,'Virtual core pointer' -7,6,1525,651,0,0,0,10588188,10,'Logitech USB Receiver' -0,6,1527,653,0,0,0,10588188 -6,6,1527,653,0,0,0,10588188,2,'Virtual core pointer' -7,6,1527,653,0,0,0,10588196,10,'Logitech USB Receiver' -0,6,1528,655,0,0,0,10588196 -6,6,1528,655,0,0,0,10588196,2,'Virtual core pointer' -7,6,1528,655,0,0,0,10588204,10,'Logitech USB Receiver' -0,6,1529,657,0,0,0,10588204 -6,6,1529,657,0,0,0,10588204,2,'Virtual core pointer' -7,6,1529,657,0,0,0,10588212,10,'Logitech USB Receiver' -0,6,1530,659,0,0,0,10588212 -6,6,1530,659,0,0,0,10588212,2,'Virtual core pointer' -7,6,1530,659,0,0,0,10588220,10,'Logitech USB Receiver' -0,6,1530,660,0,0,0,10588220 -6,6,1530,660,0,0,0,10588220,2,'Virtual core pointer' -7,6,1530,660,0,0,0,10588628,10,'Logitech USB Receiver' -0,6,1531,660,0,0,0,10588628 -6,6,1531,660,0,0,0,10588628,2,'Virtual core pointer' -7,6,1531,660,0,0,0,10588676,10,'Logitech USB Receiver' -0,6,1532,661,0,0,0,10588676 -6,6,1532,661,0,0,0,10588676,2,'Virtual core pointer' -7,4,0,0,1,0,0,10588932,10,Logitech USB Receiver -0,4,0,0,1,0,0,10588932 -6,4,0,0,1,0,0,10588932,2,Virtual core pointer -7,5,0,0,1,0,0,10589020,10,Logitech USB Receiver -0,5,0,0,1,0,0,10589020 -6,5,0,0,1,0,0,10589020,2,Virtual core pointer -7,6,1532,661,0,0,0,10603972,10,'Logitech USB Receiver' -0,6,1524,658,0,0,0,10603972 -6,6,1524,658,0,0,0,10603972,2,'Virtual core pointer' -7,6,1524,658,0,0,0,10603980,10,'Logitech USB Receiver' -0,6,1522,658,0,0,0,10603980 -6,6,1522,658,0,0,0,10603980,2,'Virtual core pointer' -7,6,1522,658,0,0,0,10604244,10,'Logitech USB Receiver' -0,6,1515,656,0,0,0,10604244 -6,6,1515,656,0,0,0,10604244,2,'Virtual core pointer' -7,6,1515,656,0,0,0,10604252,10,'Logitech USB Receiver' -0,6,1509,655,0,0,0,10604252 -6,6,1509,655,0,0,0,10604252,2,'Virtual core pointer' -7,6,1509,655,0,0,0,10604260,10,'Logitech USB Receiver' -0,6,1500,651,0,0,0,10604260 -6,6,1500,651,0,0,0,10604260,2,'Virtual core pointer' -7,6,1500,651,0,0,0,10604268,10,'Logitech USB Receiver' -0,6,1487,646,0,0,0,10604268 -6,6,1487,646,0,0,0,10604268,2,'Virtual core pointer' -7,6,1487,646,0,0,0,10604276,10,'Logitech USB Receiver' -0,6,1470,641,0,0,0,10604276 -6,6,1470,641,0,0,0,10604276,2,'Virtual core pointer' -7,6,1470,641,0,0,0,10604284,10,'Logitech USB Receiver' -0,6,1453,635,0,0,0,10604284 -6,6,1453,635,0,0,0,10604284,2,'Virtual core pointer' -7,6,1453,635,0,0,0,10604292,10,'Logitech USB Receiver' -0,6,1434,626,0,0,0,10604292 -6,6,1434,626,0,0,0,10604292,2,'Virtual core pointer' -7,6,1434,626,0,0,0,10604300,10,'Logitech USB Receiver' -0,6,1414,617,0,0,0,10604300 -6,6,1414,617,0,0,0,10604300,2,'Virtual core pointer' -7,6,1414,617,0,0,0,10604308,10,'Logitech USB Receiver' -0,6,1393,608,0,0,0,10604308 -6,6,1393,608,0,0,0,10604308,2,'Virtual core pointer' -7,6,1393,608,0,0,0,10604316,10,'Logitech USB Receiver' -0,6,1370,597,0,0,0,10604316 -6,6,1370,597,0,0,0,10604316,2,'Virtual core pointer' -7,6,1370,597,0,0,0,10604324,10,'Logitech USB Receiver' -0,6,1347,588,0,0,0,10604324 -6,6,1347,588,0,0,0,10604324,2,'Virtual core pointer' -7,6,1347,588,0,0,0,10604332,10,'Logitech USB Receiver' -0,6,1330,580,0,0,0,10604332 -6,6,1330,580,0,0,0,10604332,2,'Virtual core pointer' -7,6,1330,580,0,0,0,10604340,10,'Logitech USB Receiver' -0,6,1311,572,0,0,0,10604340 -6,6,1311,572,0,0,0,10604340,2,'Virtual core pointer' -7,6,1311,572,0,0,0,10604348,10,'Logitech USB Receiver' -0,6,1291,564,0,0,0,10604348 -6,6,1291,564,0,0,0,10604348,2,'Virtual core pointer' -7,6,1291,564,0,0,0,10604356,10,'Logitech USB Receiver' -0,6,1272,556,0,0,0,10604356 -6,6,1272,556,0,0,0,10604356,2,'Virtual core pointer' -7,6,1272,556,0,0,0,10604364,10,'Logitech USB Receiver' -0,6,1251,549,0,0,0,10604364 -6,6,1251,549,0,0,0,10604364,2,'Virtual core pointer' -7,6,1251,549,0,0,0,10604372,10,'Logitech USB Receiver' -0,6,1230,538,0,0,0,10604372 -6,6,1230,538,0,0,0,10604372,2,'Virtual core pointer' -7,6,1230,538,0,0,0,10604380,10,'Logitech USB Receiver' -0,6,1207,529,0,0,0,10604380 -6,6,1207,529,0,0,0,10604380,2,'Virtual core pointer' -7,6,1207,529,0,0,0,10604388,10,'Logitech USB Receiver' -0,6,1184,520,0,0,0,10604388 -6,6,1184,520,0,0,0,10604388,2,'Virtual core pointer' -7,6,1184,520,0,0,0,10604396,10,'Logitech USB Receiver' -0,6,1163,510,0,0,0,10604396 -6,6,1163,510,0,0,0,10604396,2,'Virtual core pointer' -7,6,1163,510,0,0,0,10604404,10,'Logitech USB Receiver' -0,6,1146,501,0,0,0,10604404 -6,6,1146,501,0,0,0,10604404,2,'Virtual core pointer' -7,6,1146,501,0,0,0,10604412,10,'Logitech USB Receiver' -0,6,1131,494,0,0,0,10604412 -6,6,1131,494,0,0,0,10604412,2,'Virtual core pointer' -7,6,1131,494,0,0,0,10604420,10,'Logitech USB Receiver' -0,6,1117,487,0,0,0,10604420 -6,6,1117,487,0,0,0,10604420,2,'Virtual core pointer' -7,6,1117,487,0,0,0,10604428,10,'Logitech USB Receiver' -0,6,1106,479,0,0,0,10604428 -6,6,1106,479,0,0,0,10604428,2,'Virtual core pointer' -7,6,1106,479,0,0,0,10604436,10,'Logitech USB Receiver' -0,6,1096,472,0,0,0,10604436 -6,6,1096,472,0,0,0,10604436,2,'Virtual core pointer' -7,6,1096,472,0,0,0,10604444,10,'Logitech USB Receiver' -0,6,1087,466,0,0,0,10604444 -6,6,1087,466,0,0,0,10604444,2,'Virtual core pointer' -7,6,1087,466,0,0,0,10604452,10,'Logitech USB Receiver' -0,6,1082,464,0,0,0,10604452 -6,6,1082,464,0,0,0,10604452,2,'Virtual core pointer' -7,6,1082,464,0,0,0,10604468,10,'Logitech USB Receiver' -0,6,1082,463,0,0,0,10604468 -6,6,1082,463,0,0,0,10604468,2,'Virtual core pointer' -7,6,1082,463,0,0,0,10604476,10,'Logitech USB Receiver' -0,6,1081,463,0,0,0,10604476 -6,6,1081,463,0,0,0,10604476,2,'Virtual core pointer' -7,6,1081,463,0,0,0,10604596,10,'Logitech USB Receiver' -0,6,1086,466,0,0,0,10604596 -6,6,1086,466,0,0,0,10604596,2,'Virtual core pointer' -7,6,1086,466,0,0,0,10604604,10,'Logitech USB Receiver' -0,6,1093,471,0,0,0,10604604 -6,6,1093,471,0,0,0,10604604,2,'Virtual core pointer' -7,6,1093,471,0,0,0,10604612,10,'Logitech USB Receiver' -0,6,1104,480,0,0,0,10604612 -6,6,1104,480,0,0,0,10604612,2,'Virtual core pointer' -7,6,1104,480,0,0,0,10604620,10,'Logitech USB Receiver' -0,6,1116,490,0,0,0,10604620 -6,6,1116,490,0,0,0,10604620,2,'Virtual core pointer' -7,6,1116,490,0,0,0,10604628,10,'Logitech USB Receiver' -0,6,1129,500,0,0,0,10604628 -6,6,1129,500,0,0,0,10604628,2,'Virtual core pointer' -7,6,1129,500,0,0,0,10604636,10,'Logitech USB Receiver' -0,6,1143,510,0,0,0,10604636 -6,6,1143,510,0,0,0,10604636,2,'Virtual core pointer' -7,6,1143,510,0,0,0,10604644,10,'Logitech USB Receiver' -0,6,1157,519,0,0,0,10604644 -6,6,1157,519,0,0,0,10604644,2,'Virtual core pointer' -7,6,1157,519,0,0,0,10604652,10,'Logitech USB Receiver' -0,6,1171,527,0,0,0,10604652 -6,6,1171,527,0,0,0,10604652,2,'Virtual core pointer' -7,6,1171,527,0,0,0,10604660,10,'Logitech USB Receiver' -0,6,1184,534,0,0,0,10604660 -6,6,1184,534,0,0,0,10604660,2,'Virtual core pointer' diff --git a/dev/record b/dev/record deleted file mode 100755 index 51be408..0000000 --- a/dev/record +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -sleep 3 -cnee --record --events-to-record 800 --mouse --keyboard -o blendev.xns -v diff --git a/dev/replay b/dev/replay deleted file mode 100755 index 5a5dfa5..0000000 --- a/dev/replay +++ /dev/null @@ -1 +0,0 @@ -cnee --replay -f blendev.xns --speed-percent 10 -ns 2>&1 > /dev/null diff --git a/mkblenderwiki b/mkblenderwiki deleted file mode 100755 index bbe6be5..0000000 --- a/mkblenderwiki +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env ruby -# A thing to automatically spew out text for BlenderWiki. (depends on pandoc) - -require 'optparse' -options = {} -OptionParser.new do |opts| - opts.banner = "Usage: #{$0} [options]" - opts.on("-w", "--wiki-edit-url", "Output the Wiki link with Edit on") do |o| - options[:wiki_edit_url] = o - end -end.parse! - -py_file_name = File.basename(Dir.pwd + '.py') -txt = File.open(py_file_name).read -txt =~ /bl_info\s*=\s*{(.*?)}/m or - raise "#{py_file_name} must have bl_info" -info_txt = $1 -txt =~ /mkblenderwiki_info\s*=\s*{(.*?)}/m or - raise "#{py_file_name} must have mkblenderwiki_info" -info_txt += $1 -info = {} -info_txt.split(/\n/).each do |line| - info[$1] = $2 if line =~ /['"]([^"']+)["']:\s*['"(](.+)[)"'],?$/ -end - -class Hash - def demand_keys dict_name, keys - keys.each do |e| - raise "#{dict_name} must have \"#{e}\"" unless has_key? e - end - end -end - -info.demand_keys 'bl_info', %w( - name - author - version - blender - location - description - tracker_url - category -) -info.demand_keys 'mkblenderwiki_info', %w( - license - py_download - git_download - input_img_prefix - wiki_img_prefix -) - -%w(version blender).each do |e| info[e].gsub! /,\s*/, '.' end -name, tooltip = info['name'].split ': ' - -if options.has_key? :wiki_edit_url - url = info['wiki_url'].sub /index.php\//, "index.php?title=" - url += '&action=edit' - puts url -else - raise "No input file." unless ARGV.size - main_input_file = ARGV[0] - body = `pandoc -t mediawiki "#{main_input_file}"` - body.gsub! "Image:#{info['input_img_prefix']}", - "Image:#{info['wiki_img_prefix']}" - # a pandoc bug?: - body.gsub! '|caption ', '|' -puts <git clone #{info['git_download']} -|link= -}} - -#{body} -EOT -end