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

Expert advice requested: automating upgrading #87

Open
ArtHansen opened this issue Aug 7, 2023 · 3 comments
Open

Expert advice requested: automating upgrading #87

ArtHansen opened this issue Aug 7, 2023 · 3 comments

Comments

@ArtHansen
Copy link

@alexander Yezhov :
This I a request for advice (LE64 is functioning flawlessly, thank you very much.) I explored sending you Linked In message but they seem to require upgrading to a premium account just to send a message …

I’m creating a desktop C# Winforms/SQLite/ WinSCP app that is a GUI for your LE client. It started as an exercise to further my understanding of the C# language (I’m a novice) and to make my life easier. Then I decided to make it something that somebody else could use. 9 months and approx. 25,000 lines of code (and tons of rework) later and integration testing is nearly complete.

The facet I’m writing you about is keeping the LE32/64 client up-to-date once the app is on a user’s machine. The primary driver behind this requirement is “if/when Let’s Encrypt makes a fundamental change that necessitates an upgraded LE32/64 client”.

I can check the users OS architecture (32 or 64 bit) and programmatically download/unzip the appropriate client from do-know. The source URL, however, is hard-coded (which makes me uneasy but I’m not aware of an alternative) so at present:
https://github.com/do-know/Crypt-LE/releases/download/0.39/le64.zip

In an attempt to automate the “updating/upgrading in perpetuity ” I explored using C#’s GetDirectories/GetFiles capability but for web rather than desktop context. I can’t even get that to work for a hosted folder that I own so obviously a non-starter. An FTP approach is also a non-starter due to credential requirements.

The various work arounds I’m considering all require human intervention. Do you know how folks typically deal with this type of issue?

Thanx in advance for any help.

@do-know
Copy link
Owner

do-know commented Aug 7, 2023

Hi. I believe the best way to follow the releases is to fetch https://github.com/do-know/Crypt-LE/releases/latest. This will redirect you to the latest release page tagged with a version that release is set with (such as https://github.com/do-know/Crypt-LE/releases/tag/0.39). You can then either extract the information from the page or simply take 0.39 (or whichever number that tag is set to) from the URL you are being redirected to, and, if that is higher than the current version, construct the download link as https://github.com/do-know/Crypt-LE/releases/download/{{version}}/le{{architecture}}.zip. Would that work for you?

@ArtHansen
Copy link
Author

ArtHansen commented Aug 8, 2023

WOW - thanx for the very prompt and unexpected response :-)

That certainly looks promising.

I'll give this a go and let you know ...

@ArtHansen
Copy link
Author

That’s exactly what I was looking for – it is working great. Thanx again.

On an unrelated item I notice your latest release adds the “Asynchronous order finalization support.” functionality. Would this circumvent the LE “cannot finalize order” error that is simply a transitory timing issue? If so I’d like to incorporate it but I’m not seeing an example of how to trigger multiple attempts … is it a flag like --retry XX where XX is number of attempts and the LE server dictates retry timing?

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

No branches or pull requests

2 participants