usrme / wishlistlite Goto Github PK
View Code? Open in Web Editor NEWThe lesser SSH directory ✨
License: MIT License
The lesser SSH directory ✨
License: MIT License
This isn't happening when filtering, so it something must have changed with my own delegate.
Seems like something that would make sense for some use cases.
While SSH itself doesn't care if its configuration has duplicate hosts defined, it makes sense for me to not present potential duplicates (most likely to creep up through Include
keywords).
Wishlistlite closes or exits to the terminal prompt if it fails to connect or ping a host, it would be better if it remained "open" to address the problem or remove the bad host.
Add a dummy unreachable host to the config , and attempt to connect to it. The application exits.
The main program does not exit early if the parent connection fails to initiate, nor does the standard error channel logic introduced in commit 07ed441 actually work. Previously I had no output being shown before the final syscall.Exec
was being made and that didn't bring to light that if the parent connection fails for whatever reason (e.g. no private keys have been loaded to the OpenSSH authentication agent), then the main program still continues to run and the failure only arises when the aforementioned syscall.Exec
runs, and any errors that were shown were not from the standard error channel that I had set up.
Using the 'io.Writer' interface would make testing easier as I wouldn't have to create any intermediary files nor clean them up, but rather focus on the business logic.
On several occasions I've wanted to just quickly copy the HostName
value of an entry for reference elsewhere (be it from the main list comprised of the SSH configuration entries or from the recently-connected-to list, which can contain manually input hosts).
There are existing examples of how the Charm folks are doing this, so it shouldn't be too hard.
For whatever reason the connection input cursor style and the filter cursor style are no longer being applied with the correct color, but instead appear as white.
With the somewhat convoluted logic of starting the main program (i.e. Wishlist Lite), which starts a goroutine for the parent SSH connection and once that's done the main program is replaced with a child SSH connection to the control socket from the parent SSH connection, I'm wondering whether this seeming flow can somehow be visualized by observing system resources.
Once the ~/.ssh/recent.json
file has already been created then any additional hosts added to the main ~/.ssh/config
file aren't then added to the recent.json
file once a connection has been made. There should be a test for this.
It feels like this could be a nice feature to show a loading spinner in the main screen without immediately jumping to the SSH process, though this will definitely require a refactor to how the SSH process is handled. If a pseudoterminal is allocated or the connection fails entirely, then the user should immediately just see that and the wishlistlite
process should finish. Everything up until either of those should "just" be a visible spinner to indicate that something is happening.
For example it doesn't make sense to run when:
For me, personally, opening up and having the most recently connected hosts at the top would be a nice improvement in the usability. A minor speed improvement already exists with the custom input option as I can just press i
and then the alias of the host, but still...
This would make removing entries created from an ad hoc that contained typos much easier than editing the JSON file containing the entries directly.
I'm really stretching the definition of "enhancement", but for whatever reason I thought this would be cool to implement now that it seems I have enough pieces in place and knowledge gained with the work I did in issue #20.
The keybindings should show that only cancelling via Escape key and connecting to typed input via Enter key are valid.
Just as selections made from the existing SSH configuration or from the created recent.json
, so too should ad hoc connections made through i
be recorded in recent.json
. If what was put in to the prompt matches one of the aliases defined in the SSH configuration, then the accompanying HostName
value, if one exists, should be recorded as well. Otherwise, the HostName
value should just match whatever was put in.
This stems from #22 (comment) and aims to alleviate the following:
Since this is legal in terms of an SSH configuration as each Host
can have additional options that separate one from another even if HostName
values are identical, it presents a problem visually as without a descriptive Host
value it's not possible to easily tell the target hosts apart.
I didn't notice this before, but at times the 'select' statement will break
too early leaving the parent connection's output missing and the elapsed time as 0.
This would give an indication as to when the previous connection to a host was made. When no connection has been made then the regular FQDN should be shown instead.
After changes implemented in feature request #8, the stopwatch just keeps going even if there's an immediate issue like no key being available to the SSH process. Prior, the entire process would just exit with what went wrong.
Good way to get my feet wet with GitHub Actions.
The 'Include' keyword, while implicitly supported by the underlying ssh
executable when doing a custom connection through i
, isn't respected in the initial view.
Include ~/.ssh/config.d/*
This will definitely 🚀 this project.
I, personally, would love to be able to pass in an Ansible inventory file and have at the very least a list of hosts I can connect to. At the very least meaning that I probably don't need to know what group(s) they belong to or need to see any hierarchies as the ability to filter is at my fingertips anyway.
At first I thought I'd write my own INI parser, but that just seems like a fraught endeavour, so I'll just leverage prior work by others.
At the moment when the parent SSH connection gets created in the background it swallows up the entirety of the standard output, which means that when the child SSH connection gets created any MOTD is not shown. Ideally it should be shown then as well as it seemingly is the only SSH connection that gets made as far as the end user is concerned.
I'm thinking that as soon as something is detected on the parent connection's standard output one of the following should be done to preserve the MOTD for when the child connection happens:
syscall.Exec
is done
At the moment visiting this package's Go Packages page is a little bit sad.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.