From 7b3fe8b5cd3e8c837d3fe7522a76889ba9591638 Mon Sep 17 00:00:00 2001 From: Kareem Zidane Date: Tue, 3 Oct 2017 21:42:38 -0400 Subject: [PATCH] rewriting gdbshim when updated --- .../debuggers/gdb/gdbdebugger.js | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/plugins/c9.ide.run.debug/debuggers/gdb/gdbdebugger.js b/plugins/c9.ide.run.debug/debuggers/gdb/gdbdebugger.js index 09d7e76d..f6200d77 100755 --- a/plugins/c9.ide.run.debug/debuggers/gdb/gdbdebugger.js +++ b/plugins/c9.ide.run.debug/debuggers/gdb/gdbdebugger.js @@ -27,13 +27,16 @@ define(function(require, exports, module) { var Path = require("path"); var GDBProxyService = require("./lib/GDBProxyService"); - + /***** Initialization *****/ var plugin = new Plugin("CS50", main.consumes); var emit = plugin.getEmitter(); emit.setMaxListeners(1000); + // increment when shim is updated to force rewrite + var SHIM_VERSION = 1; + var TYPE = "gdb"; var attached = false; @@ -58,21 +61,29 @@ define(function(require, exports, module) { ["autoshow", "true"] ]); }); - + // must register ASAP, or debugger won't be ready for reconnects debug.registerDebugger(TYPE, plugin); - + // writeFile root is workspace directory, unless given ~ - var shimPath = "~/.c9/bin/c9gdbshim.js"; + var shimVersion = "~/.c9/bin/.c9gdbshim" + SHIM_VERSION; var shim = require("text!./shim.js"); - fs.exists(shimPath, function(exists) { - if (exists) return; // TODO use localfs extend when it is ready - fs.writeFile(shimPath, shim, "utf8", function(err) { + fs.exists(shimVersion, function(exists) { + if (exists) + return; + + fs.writeFile("~/.c9/bin/c9gdbshim.js", shim, "utf8", function(err) { if (err) { // unregister the debugger on error debug.unregisterDebugger(TYPE, plugin); return console.log("Error writing gdb shim: " + err); } + + // remember we wrote current version + fs.writeFile(shimVersion, "", function(err) { + if (err) + return console.log("Error writing shim version: " + err); + }); }); }); }