Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1: Connection re-use, Streaming, … #164

Draft
wants to merge 54 commits into
base: main
Choose a base branch
from
Draft

v1: Connection re-use, Streaming, … #164

wants to merge 54 commits into from

Conversation

pmeinhardt
Copy link
Contributor

@pmeinhardt pmeinhardt commented Dec 17, 2020

This is still very much a work in progress, but I am quite happy with how it's chugging along and eager to release once I am happy with this next iteration of the package. 🚂

The main goals for the new release are: ✨

  • Connection re-use: In v0 the top-level run, upload and download functions all set up an SSH connection to the remote each time they are invoked. The new API encourages connecting to each remote only once and then using the connection for multiple operations.
  • Better, high-level streaming support (Streaming support? #163, Are there any examples for streaming the output of a command? #150): The top-level functions of v0 made it tricky to stream the output of commands. They were mostly geared towards aggregating the complete output before returning.

I'll post more updates here as I am making progress. Happy about feedback and questions. ✌️

Much love to all of you 💚


@rjanja
Copy link

rjanja commented Dec 17, 2020

Exciting! Thanks for all your hard work on this, @pmeinhardt! Love these goals! 💯

@pmeinhardt
Copy link
Contributor Author

I might drop SFTP-based uploads from the goals for the next release for reasons outlined here: #162 (comment)

@pmeinhardt pmeinhardt changed the title v1: Connection re-use, Streaming, SFTP-based File Transfer… v1: Connection re-use, Streaming, … Dec 29, 2020
Note that you will need to run a login shell so /etc/profile is loaded.
If you are starting the image directly, use:

    docker run -it --rm sshkit-test-sshd /bin/sh -l

The "-l" flag will make `sh` behave like a login shell.
Remove `:impl` option from calls. Instead configure the module to use
- implementation or mock - in the application environment.
Does not respect all the context options at the moment.
Apparently `:erl_tar.add/3` recursively adds files and subdirectories.
@andreasknoepfle
Copy link
Member

Rebased :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Streaming support?
3 participants