lawik

lawik

Nerves Core Team

The improved NervesHub CLI

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:

First Post!

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.

Most Liked

lawik

lawik

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.

Last Post!

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.

Where Next?

Popular in News & Updates Top

mobileoverlord
New versions of the Kiosk systems are out. These systems update official Nerves systems with a local web browser for rendering user inter...
New
fhunleth
We recently released Nerves 1.6 and corresponding updates to the Nerves new project generator, nerves_bootstrap and our official systems....
New
fhunleth
We’re excited to announce that we’re actively working on NervesHub 2.0, an improved version of our IoT device firmware update and managem...
New
lawik
It is my pleasure to announce the official release of the new generation of NervesHub with the v2.0.0 release. Containers are tagged. :p...
New
barnabasJ
You can now add subscriptions using the DSL. subscriptions do pubsub YourAppWeb.Endpoint subscribe :something_changed do action...
New
bartblast
Hey Elixir community! :waving_hand: First, I owe you all an apology. There’s a running joke among my friends that Hologram is like nucle...
New
bartblast
Hologram v0.10 is out! The headline is the event system, which got a lot bigger this release. You can now handle keyboard, scroll, resize...
New

Other popular topics Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement