Added compatibility with python scripts
This commit is contained in:
parent
4d529619d6
commit
f5845e95e6
@ -108,9 +108,9 @@ class code_block(Gtk.Box):
|
||||
copy_button = Gtk.Button(icon_name="edit-copy-symbolic", css_classes=["flat", "circular"], tooltip_text=_("Copy Message"))
|
||||
copy_button.connect("clicked", lambda *_: self.on_copy())
|
||||
title_box.append(copy_button)
|
||||
if language_name.lower() == 'bash':
|
||||
if language_name and language_name.lower() in ['bash', 'python3']:
|
||||
run_button = Gtk.Button(icon_name="execute-from-symbolic", css_classes=["flat", "circular"], tooltip_text=_("Run Script"))
|
||||
run_button.connect("clicked", lambda *_: self.run_script())
|
||||
run_button.connect("clicked", lambda *_: self.run_script(language_name))
|
||||
title_box.append(run_button)
|
||||
self.append(title_box)
|
||||
self.append(Gtk.Separator())
|
||||
@ -126,11 +126,11 @@ class code_block(Gtk.Box):
|
||||
clipboard.set(text)
|
||||
window.show_toast(_("Code copied to the clipboard"), window.main_overlay)
|
||||
|
||||
def run_script(self):
|
||||
def run_script(self, language_name):
|
||||
logger.debug("Running script")
|
||||
start = self.buffer.get_start_iter()
|
||||
end = self.buffer.get_end_iter()
|
||||
dialogs.run_script(window, self.buffer.get_text(start, end, False))
|
||||
dialogs.run_script(window, self.buffer.get_text(start, end, False), language_name)
|
||||
|
||||
class attachment(Gtk.Button):
|
||||
__gtype_name__ = 'AlpacaAttachment'
|
||||
|
@ -419,9 +419,11 @@ def attach_website(self, url):
|
||||
|
||||
# Run Script
|
||||
|
||||
def run_script_response(self, dialog, task, script):
|
||||
def run_script_response(self, dialog, task, script, language_name):
|
||||
if dialog.choose_finish(task) == "accept":
|
||||
logger.info('Running: \n{}'.format(script))
|
||||
if language_name == 'python3':
|
||||
script = 'echo "{}" | python3'.format(script.replace('"', '\\"'))
|
||||
script += '; read -p "\n(Alpaca) {}"'.format(_('Press Enter to close...'))
|
||||
using_flatpak = shutil.which('flatpak-spawn')
|
||||
|
||||
@ -460,7 +462,7 @@ def run_script_response(self, dialog, task, script):
|
||||
except Exception as e:
|
||||
logger.error(f'Error running script on {terminal_to_use}: {e}')
|
||||
|
||||
def run_script(self, script:str):
|
||||
def run_script(self, script:str, language_name:str):
|
||||
dialog = Adw.AlertDialog(
|
||||
heading=_("Run Script"),
|
||||
body=_("Make sure you understand what this script does before running it, Alpaca is not responsible for any damages to your device or data"),
|
||||
@ -473,5 +475,5 @@ def run_script(self, script:str):
|
||||
dialog.choose(
|
||||
parent = self,
|
||||
cancellable = None,
|
||||
callback = lambda dialog, task, script=script: run_script_response(self, dialog, task, script)
|
||||
callback = lambda dialog, task, script=script, language_name=language_name: run_script_response(self, dialog, task, script, language_name)
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user