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
ssh
channel, 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
flake8
to check the code. - Move
remote()
to its own source. - API change: if a
str
orbytes
object 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_out
and_err
handling. - More error handling.
- Fixed errors with global variables handling.
argv
is handled at the last time possible, allowing it being passed from test invocation.shift
complains on negative values.- Lazy
pprint()
, so debug statements do not do useless work. stdin/out/err
handling 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
vi
be run in the remote. - Paved the road to make
remote()
s more likeCommand()
s.
pythonayrton