3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-17 09:29:30 +01:00
Commit Graph

61 Commits

Author SHA1 Message Date
Pragmatic Software
4c866d39b6
Fix white-space handling; add suppress-no-output 2024-11-03 19:26:56 -08:00
Pragmatic Software
bd4fd4ea27
pbot-vm: preserve newlines in split_line() 2024-11-02 18:29:25 -07:00
Pragmatic Software
e5e0f26b90
applets/pbot-vm: minor fixes
* set `preserve_escapes` to 0 in guest/_c_base.pm so escapes are stripped in:

     <pragma-> ,show testcargs
     <candide> [global] testcargs: /code c11 printf("/say args: " ); while
               (*++argv) printf("[%s] " , *argv);
     <pragma-> ,testcargs foo\'bar baz\'qux
     <candide> args: [foo\'bar] [baz\'qux]

  to produce the desired output of:

     <candide> args: [foo'bar] [baz'qux]

* set `keep_spaces` to 1 in host/_default.pm since it turns out that in some
  languages unquoted spaces are significant, e.g. in `sh ${1%  *}` to strip
  text following two spaces. Without `keep_spaces` enabled, `sh ${1%  *}`
  becomes `sh ${1% *}` and strips all text following one space instead of two.
2024-10-30 15:43:38 -07:00
Pragmatic Software
f4caf44eb0
split_line(): Remove no longer used next_ch/last_ch 2024-10-29 12:49:19 -07:00
Pragmatic Software
4287cb9fa2
Fix split_line() quoting to be more sh-like
E.g.:

<pragma-> show testcargs
   <PBot> [global] testcargs: /code c11 printf("/say args: " ); while (*++argv) printf("[%s] " , *argv);
<pragma-> testcargs 'hello''world' 'how are 'you today
   <PBot> args: [helloworld] [how are you] [today]

Previously, adjacent 'foo''bar' would end up as 2 args like [foo] [bar]. Now
they are properly concatenated into one [foobar] argument.

This also fixes the cases of whitespace being inserted after quoted arguments.
2024-10-29 10:19:46 -07:00
Pragmatic Software
4a025801a2
applets/pbot-vm: disregard IRC text modifiers when escaping unprintable characters 2024-10-27 12:52:15 -07:00
Pragmatic Software
9192b7bfad
pbot-vm: Preserve escapes in -args and -stdin 2024-10-01 13:08:52 -07:00
Pragmatic Software
6002c93d60
pbot-vm: Fix -paste getting 403 Forbidden 2024-10-01 12:37:45 -07:00
Pragmatic Software
7da755d248
pbot-vm: make clang2x default language; add -Wno-unused-variable 2024-09-19 13:51:57 -07:00
Pragmatic Software
13c117e360
pbot-vm: remove/replace -Wno-unused with -Wno-unused-parameter 2024-08-17 22:17:46 -07:00
Pragmatic Software
8e3652bc8e
pbot-vm: gdb() needs __asm__() instead of asm() 2024-04-17 00:37:36 -07:00
Pragmatic Software
ddeeb5da0f
pbot-vm: update de-optimization for gdb() function 2024-04-16 23:41:37 -07:00
Pragmatic Software
e4cb6ceff6
pbot-vm: simplify network script slightly 2024-04-12 13:12:41 -07:00
Pragmatic Software
111f3bd2e7
pbot-vm: consolidate network enable/disable into one script 2024-04-12 13:07:27 -07:00
Pragmatic Software
9ef521309a
pbot-vm: update documentation about how to start PBot VM after reboot 2024-04-10 13:09:58 -07:00
Pragmatic Software
e25bde159f
pbot-vm: ignore -health and -revert used simultaneously to prevent double-revert 2024-04-10 12:53:37 -07:00
Pragmatic Software
3f98aced62
pbot-vm: minor Vagrant documentation tweak 2024-04-10 02:35:33 -07:00
Pragmatic Software
17b69f04ff
pbot-vm: massive refactor
* replace heartbeat with health-check
  * instead of steady stream of newlines every 5s, now awaits input
    and responds with `vmstat` output

* more reliably use host/config/vm-exec.json to get libvirt domain name
  for snapshot-revert, server address, serial ports, vagrant setting, etc

* use iptables/nftables to disable networking
  * added guest/bin/disable-network-[iptables,nftables]
  * added guest/bin/enable-network-[iptables,nftables]

* replace ugly ___OUTPUT___ texts in sh, bash, ksh, zsh languages

* documentation updates and tweaks
2024-04-10 01:21:18 -07:00
Pragmatic Software
826fd79d71
pbot-vm: reduce noisy output in Scheme language 2024-04-07 17:19:38 -07:00
Pragmatic Software
a3ab27dbac
pbot-vm: documentation tweaks 2024-04-04 12:23:45 -07:00
Pragmatic Software
2547f035a1
pbot-vm: add experimental Vagrant provisioning 2024-04-04 03:41:58 -07:00
Pragmatic Software
09aed30893
pbot-vm: add PBOTVM_ADDR env var to set address of vm-server 2024-03-31 17:36:36 -07:00
Pragmatic Software
a923b505fa
pbot-vm: tumbleweed provision: add missing gcc package 2024-03-30 21:06:44 -07:00
Pragmatic Software
446857ffbf
pbot-vm: provision non-interactively 2024-03-30 20:48:45 -07:00
Pragmatic Software
0829265ef8
pbot-vm: setup-guest auto-detects OS/distro and runs provisioning scripts 2024-03-30 19:41:50 -07:00
Pragmatic Software
91f8547aed
pbot-vm: add Tumbleweed orchestration script
Fix Java language missing `/bin/sh` in execute()
Update brainfck language to use `bff`
2024-03-30 16:49:09 -07:00
Pragmatic Software
59090b39e7
pbot-vm: update VirtualMachine.md with improved PTY console install instructions and misc tweaks 2024-03-27 14:21:32 -07:00
Pragmatic Software
06650963a3 applets/pbot-vm: increase length to trigger "Same output" 2023-04-28 00:48:37 -07:00
Pragmatic Software
0cd4ce5220 pbot-vm: guest-server: update serial ports 2023-03-13 13:33:10 -07:00
Pragmatic Software
3ada433527 Refactor UTF-8 fix 2023-03-12 18:28:50 -07:00
Pragmatic Software
b9a89e10d6 Fix UTF-8 encoding 2023-03-12 18:10:44 -07:00
Pragmatic Software
6565c516e9 pbot-vm: remove "command:" text from -paste output 2023-03-12 16:12:58 -07:00
Pragmatic Software
e736051de5 Fix UTF-8 encoding 2023-03-12 16:06:04 -07:00
Pragmatic Software
7da7883d9d pbot-vm: guest-gdb: stricter match for main() 2023-02-09 21:04:30 -08:00
Pragmatic Software
224a00949a pbot-vm: guest-gdb: fix potential undefined $start when optimizations are enabled 2023-02-09 13:39:10 -08:00
Pragmatic Software
19d8170af3 applets/pbot-vm: vm-server: fix child signal handler 2023-01-24 12:34:03 -08:00
Pragmatic Software
77a24faf02 applets/pbot-vm: add -vm option to help output 2022-12-25 18:12:32 -08:00
Pragmatic Software
e7f4729567 pbot-vm: rebuild without print_last_statement() if "cannot subscript something" error 2022-05-01 10:30:34 -07:00
Pragmatic Software
4b5d8aa535 pbot-vm: use %02X for escapes; do not escape \x03 (for IRC colors) 2022-04-08 13:12:37 -07:00
Pragmatic Software
3d311296eb pbot-vm: output postprocessing: escape control characters/unprintable characters 2022-04-07 18:24:57 -07:00
Pragmatic Software
690c5f5c44 pbot-vm: Add newline to output only if output does not already have a newline 2022-04-07 18:21:54 -07:00
Pragmatic Software
3375580a2d pbot-vm: fix parsing of quoted text within GDB/MI 2022-04-06 10:53:07 -07:00
Pragmatic Software
1c57e01fad pbot-vm: escape malformed Unicode on STDOUT 2022-04-04 22:32:53 -07:00
Pragmatic Software
110912e85d pbot-vm: use coderef to simplify escaping of malformed Unicode 2022-04-04 22:10:50 -07:00
Pragmatic Software
5bc47b61d9 pbot-vm: display escaped malformed Unicode in output instead of U+FFFD 2022-04-04 21:54:39 -07:00
Pragmatic Software
757088987d pbot-vm: fix invalid character encountered in JSON string 2022-04-04 21:41:27 -07:00
Pragmatic Software
4535881898 pbot-vm: fix whitespace issue with "string"[n] 2022-04-04 17:17:57 -07:00
Pragmatic Software
03fb901291 pbot-vm: fix potential time-out when outputting 0
If the output from a code snippet is `0` without a newline,
Perl treats this as a false value. When Guest::process_command()
returns a false value, that signals to guest-server::serial_server()
that it is the parent returning and so it will not send the result back
to the host.

However, `0\n` is a true value. Solution: always append a final newline to
the guest output.
2022-03-31 19:52:46 -07:00
Pragmatic Software
1f3110075a pbot-vm: fix clang2x 2022-03-19 21:50:43 -07:00
Pragmatic Software
02ca5e4435 pbot-vm: add C2X language files; default cc to C2X 2022-03-19 21:31:58 -07:00