Comments (3)
Great idea, I like it a lot. This would make it much more user friendly to use!
Also, it means we can drop the command's options --name/--url
and keep it to consuming one argument.
I have not yet worked with any uri parsing libraries in rust, but I assume it to be quite managable!
url seems to support what we are looking for. With the right checks we could distinguish between local files and remote ones.
Using this crate could allow more different kinds of remote sources for trove files, so the current code which fetches remote files might need to be looked at again. Currently, it's just expecting raw text which can be parsed as a trove.yml
Would you be interested in taking on the research for such a crate, and potentially implementation of the feature?
from hoard.
I was trying out the url crate (it's also in requwest::Url
module) and I tried the sending the parse
method three types of strings:
- http/https url
- Unix paths
- Windows paths
The parse
method returns
- parsed
Url
object - an
Error
withErrorType
variantRelativePathWithoutBase
For windows paths is where things get complicated. The windows paths gets parsed as a correct URL but with the drive letter being the scheme of URL and path being remaining path that didn't get parsed.
For example, the windows path C:\Programming\trove.yml
gets parsed into a URL object with scheme as C
and path as Programming\trove.yml
.
So my proposal is to parse the string given by the user, if what they gave
- gets parsed into correct Url object (that is with http(s) as scheme) then use get request
- returns a
RelativePathWithoutBase
error and the OS is of type unix, then consider this as a path - if parsed object is with a scheme of single letter (assuming most users don't have more than 26 drives) and the OS is Windows, then consider this also a path
- throw error, if anything other than that
from hoard.
Sounds great with that crate.
Regarding windows, I have not considered that OS generally for any of the functionality. I'm actually not sure if hoard
even works in a windows terminal.
Agree with your proposal for the implementation. I'd say, go ahead!
from hoard.
Related Issues (20)
- Feature request: Make it compatible with Windows HOT 4
- Update trove.yaml when changing command parameter token
- suggest: read trove.yml in the current directory (or load with option) HOT 6
- Add flag to trove model wether its a local file or not global
- add Cargo.lock file to the repo HOT 2
- Allow name-based / num-based parameter tokens HOT 3
- Probably doesn't work on zsh+macos HOT 1
- add command to print shell configs HOT 2
- fix clippy lints
- Use struct arguments HOT 1
- Allow ending parameter token HOT 6
- Allow escape character HOT 2
- GUI command edit HOT 1
- GUI new command from history HOT 3
- Ubuntu .deb packages missing from releases HOT 3
- install.sh write BASH config to .zshrc not .bashrc HOT 3
- Customize tab highlight color HOT 1
- Select name space for new command HOT 1
- Named parameters using `hoard pick` are not interpreted as expected HOT 3
- Allow api_url to be configured that gets used in chatgpt_rs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hoard.