lawik

lawik

Nerves Core Team

NervesHub has had a CLI for a long time. It is called nerves_hub_cli and for the longest time you’d add it as a dependency. But only once you found out it existed, which took me a minute…

A while back it was changed to be an escript that you could get separately from your mix project. That was a big improvement, thanks to @gus.

And thanks to various efforts by Gus and @joshknz we now have it wrapped up in a Burrito, vastly improved experience throughout the CLI and it can even be installed via Homebrew or curl.

brew install nerves-hub/tap/nh

or

curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/nerves-hub/nerves_hub_cli/master/install.sh | sh

You can then run this to set up your instance and then authenticate:

nh config set uri "https://manage.nervescloud.com/"
nh user auth

From there you can nh device list or nh device cert import until you are satisfied. Essentially it exposes all the typical clicking around you would do in the UI to set things up meaning NervesHub is really, really scriptable and friendly to automation.

We also have direct API integration of course. The Swagger UI is right here for NervesCloud (me and Josh’s hosted NervesHub service).

This has been available for a bit so I figured I’d give a brief update, especially since a lot of folks don’t even know there is a CLI :slight_smile:

Showing Posts 1 to 3

D4no0

D4no0

This is pretty nice. For some reason previously when I tried to install it using mix archives, the command never worked without specifying the full path to the escript.

As someone who just dived into this a few months ago, I expected that the CLI was doing only local stuff. It was pretty confusing at first to find out that it’s a mixed bag of both local commands and the ones that require an active connection to a instance of nerveshub_web. The way you set local state (like organization selection) in it it’s also a bit confusing and I would be in favor of explicit long commands honestly.

lawik

lawik OP

Nerves Core Team

The mix of local and remote can definitely be a bit confusing. The fundamental design was established way back and we haven’t gone over that. Not sure when we will since it does work quite well. One big upside of the mixture is that creating a firmware signing key for an org will also put it on the NervesHub instance instead of being a separate step.

For the org and product stuff, you can just not set env vars or those values and explicitly run with --org and --product to whatever extent needed.

D4no0

D4no0

If it works in practice, then that is great. In my case most probably it was the learning curve, as there are a lot of things to unpack at once if you are just starting out, especially since I was also setting up nerveshub_web locally at the same time.

— All posts loaded —

Where Next? Top

Trending in News & Updates Top

sorenone
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
kip
I’m a bit excited to announce that Localize and friends are now at release 1.0. Even though it’s a 1.0 release, it stands on 8 years of w...
New
bartblast
Hologram v0.11 is out! Two headline features this release. First, Elixir regexes now run in the browser. They were server-only until now,...
New
nseaSeb
Just published search_ash 0.5.0 (with search_core 0.4.0) on Hex. What’s new: synonyms You can now declare a synonym dictionary per lang...
New
mudasobwa
MdexMultilineCells is an MDEx plugin enabling multi-line cells in Markdown tables with full inline/block Markdown rendering and automati...
New
sullyMusty
ActiveMemory 0.8.0 — in-memory tables that speak Ecto ActiveMemory 0.8.0 is now on Hex. ActiveMemory is an in-memory store built on ETS ...
New
jvoegele
Bond brings Design by Contract to Elixir: preconditions, postconditions and invariants as executable specifications, checked at runtime a...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
aseigo
ICal is a library for interacting with iCalendar data. It parses iCalendars into typed Elixir structs via ICal.from_ics, and can prepare ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews