Another long-ish cycle (1.5 months, more or less). That's what two weeks of vacation do to the project.
This time I fixed executing things in, and handling the standard streams between the
ayrton script and, the remote(), so now we can run complex programs like vi and
mc. The ChangeLog:
- Send data to/from the remote via another
sshchannel, which is more stable than usingstdin. - Stabilized a lot all tests, specially those using a mocked stdout for getting test validation.
- A lot of tests have been moved to their own scripts in
ayrton/tests/scripts, which also work as (very minimal) examples of what's working. - Use
flake8to check the code. - Move
remote()to its own source. - API change: if a
strorbytesobject is passed in_in, then it's the name of a file where to readstdin. If it's anint, then it's considered a file descriptor. This makes the API consistent to_outand_errhandling. - More error handling.
- Fixed errors with global variables handling.
argvis handled at the last time possible, allowing it being passed from test invocation.shiftcomplains on negative values.- Lazy
pprint(), so debug statements do not do useless work. stdin/out/errhandling inremote()is done by a single thread.- Modify a lot the local terminal when in
remote()so, among other things, we have no local echo. - Properly pass the terminal type and size to the remote. These last three features
allow programs like
vibe run in the remote. - Paved the road to make
remote()s more likeCommand()s.
pythonayrton