Skip to content

Commit 4f926f5

Browse files
committed
initial support for python3
1 parent 0d5f143 commit 4f926f5

File tree

5 files changed

+61
-29
lines changed

5 files changed

+61
-29
lines changed

helpers/python/debug_helper.js

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
var spawn = require('child_process').spawn,
22
exec = require('child_process').exec,
3+
db = require('../../models/webideModel'),
34
net = require('net'),
45
path = require('path'),
56
ws_helper = require('../websocket_helper'),
@@ -29,39 +30,46 @@ exports.start_debug = function start_debug(file, socket) {
2930
console.log(!debug_program);
3031
if (!debug_program) {
3132
console.log('spawn debugger');
32-
debug_program = spawn("sudo", ["python", "debugger.py"], {cwd: __dirname});
33-
var buffer = "";
34-
debug_program.stdout.on('data', function(data) {
35-
console.log(data.toString());
33+
db.findOne({type: "editor:settings"}, function(err, settings) {
34+
var command = 'python';
35+
if (typeof settings !== 'undefined' && settings.python_version === '3') {
36+
command = 'python3';
37+
}
3638

37-
buffer += data.toString();
39+
debug_program = spawn("sudo", [command, "debugger.py"], {cwd: __dirname});
40+
var buffer = "";
41+
debug_program.stdout.on('data', function(data) {
42+
console.log(data.toString());
3843

39-
if (buffer.indexOf("DEBUGGER READY") !== -1 && !client_connected) {
40-
console.log("DEBUGGER READY");
41-
connect_client(file, socket);
42-
console.log("after connect_client");
43-
}
44+
buffer += data.toString();
4445

45-
});
46+
if (buffer.indexOf("DEBUGGER READY") !== -1 && !client_connected) {
47+
console.log("DEBUGGER READY");
48+
connect_client(file, socket);
49+
console.log("after connect_client");
50+
}
4651

47-
debug_program.stderr.on('data', function(data) {
48-
console.log(data.toString());
49-
ws_helper.send_message(socket, 'debug-error', {file: file, error: data});
50-
});
52+
});
5153

52-
debug_program.on('error', function(data) {
53-
console.log("DEBUG PROGRAM ERROR:");
54-
console.log(data);
55-
});
54+
debug_program.stderr.on('data', function(data) {
55+
console.log(data.toString());
56+
ws_helper.send_message(socket, 'debug-error', {file: file, error: data});
57+
});
5658

57-
debug_program.on('exit', function(code) {
58-
console.log('Debug Program Exit');
59-
console.log(code);
60-
debug_program = null;
59+
debug_program.on('error', function(data) {
60+
console.log("DEBUG PROGRAM ERROR:");
61+
console.log(data);
62+
});
6163

62-
if (enable_debug) {
63-
self.start_debug(file, socket);
64-
}
64+
debug_program.on('exit', function(code) {
65+
console.log('Debug Program Exit');
66+
console.log(code);
67+
debug_program = null;
68+
69+
if (enable_debug) {
70+
self.start_debug(file, socket);
71+
}
72+
});
6573
});
6674
} else {
6775
//console.log('resetting debugger');

public/javascripts/editor.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,7 @@
663663
if (is_script(file.extension)) {
664664
$(templates.editor_bar_run_link).appendTo('.editor-bar-actions');
665665
$(templates.editor_bar_debug_link).appendTo('.editor-bar-actions');
666+
666667
//$(templates.editor_bar_trace_link).appendTo('.editor-bar-actions');
667668
}
668669

@@ -1243,7 +1244,13 @@
12431244
//var command;
12441245
//Running as sudo is temporary. It's a necessary evil to access GPIO at this point.
12451246
if (file.extension === 'py') {
1246-
command = "sudo python ";
1247+
if (typeof settings !== 'undefined') {
1248+
if (settings.python_version === '3') {
1249+
command = "sudo python3 ";
1250+
} else {
1251+
command = "sudo python ";
1252+
}
1253+
}
12471254
} else if (file.extension === 'rb') {
12481255
command = "sudo ruby ";
12491256
} else if (file.extension === 'js') {
@@ -1767,6 +1774,12 @@
17671774
set_settings({"manual_git": $(this).text().toLowerCase()});
17681775
}
17691776

1777+
function set_python_version(event) {
1778+
$('.python-version').removeClass('selected');
1779+
$(this).addClass('selected');
1780+
set_settings({"python_version": $(this).text().replace('_', '')});
1781+
}
1782+
17701783
if (typeof settings !== 'undefined') {
17711784
if (settings.font_size) {
17721785
$('.font-size-value._' + settings.font_size + 'px').addClass('selected');
@@ -1793,12 +1806,18 @@
17931806
} else {
17941807
$('.manual-git-value.off').addClass('selected');
17951808
}
1809+
if (settings.python_version) {
1810+
$('.python-version._' + settings.python_version).addClass('selected');
1811+
} else {
1812+
$('.python-version._2').addClass('selected');
1813+
}
17961814
} else {
17971815
$('.font-size-value.12px').addClass('selected');
17981816
$('.soft-tab-value.on').addClass('selected');
17991817
$('.tab-size.4').addClass('selected');
18001818
$('.invisibles-value.off').addClass('selected');
18011819
$('.manual-git-value.off').addClass('selected');
1820+
$('.python-version.python').addClass('selected');
18021821
}
18031822

18041823
$('#editor').hide();
@@ -1810,6 +1829,7 @@
18101829
$(document).on('click touchstart', '.tab-size-value', set_tab_size);
18111830
$(document).on('click touchstart', '.invisibles-value', set_show_invisibles);
18121831
$(document).on('click touchstart', '.manual-git-value', set_manual_git);
1832+
$(document).on('click touchstart', '.python-version', set_python_version);
18131833
$(document).on('click touchstart', '.close-settings-manager', close_settings_manager);
18141834
}
18151835

public/stylesheets/app.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ a.navigator-settings i.settings-enabled {
530530
margin: 0 1px 0 0;
531531
}
532532

533-
.settings-element .font-size-value, .soft-tab-value, .tab-size-value, .invisibles-value, .manual-git-value {
533+
.settings-element .font-size-value, .soft-tab-value, .tab-size-value, .invisibles-value, .manual-git-value, .python-version {
534534
cursor: pointer;
535535
}
536536

scripts/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ echo "**** Starting the server...(please wait) ****"
108108
sleep 20s
109109

110110
echo "**** The Adafruit WebIDE is installed and running! ****"
111-
echo "**** Commands: sudo service adafruit-webide.sh {start,stop,restart} ****"
111+
echo "**** Commands: sudo systemctl {start,stop,restart} adafruit-webide ****"
112112
echo "**** Navigate to http://$(hostname).local:8080 to use the WebIDE"
113113
#echo "**** To run the editor: ****"
114114
#echo "**** cd ~/Adafruit/WebIDE ****"

views/editor/index.pug

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ block content
5151
span Manual Git commit and push (advanced)
5252
span.manual-git-value.on On
5353
span.manual-git-value.off Off
54+
.settings-element
55+
span Python Version:
56+
span.python-version._2 2
57+
span.python-version._3 3
5458
#editor
5559
#editor-output-wrapper
5660
.dragbar

0 commit comments

Comments
 (0)