balena-image-manager

Manage device base operating systems resources with caching support

Usage no npm install needed!

<script type="module">
  import balenaImageManager from 'https://cdn.skypack.dev/balena-image-manager';
</script>

README

balena-image-manager

npm version dependencies Build Status Build status

Join our online chat at Gitter chat

Manage device base operating systems resources with caching support.

Role

The intention of this module is to provide low level access to how a balena device image is downloaded, cached and evaluated for freshness.

THIS MODULE IS LOW LEVEL AND IS NOT MEANT TO BE USED BY END USERS DIRECTLY.

Installation

Install balena-image-manager by running:

$ npm install --save balena-image-manager

Documentation

manager.get(deviceType, versionOrRange) ⇒ Promise.<NodeJS.ReadableStream>

This function saves a copy of the downloaded image in the cache directory setting specified in balena-settings-client.

Kind: static method of manager
Summary: Get a device operating system image
Returns: Promise.<NodeJS.ReadableStream> - image readable stream
Access: public

Param Type Description
deviceType String device type slug or alias
versionOrRange String can be one of * the exact version number, in which case it is used if the version is supported, or the promise is rejected, * a semver-compatible range specification, in which case the most recent satisfying version is used if it exists, or the promise is rejected, * 'latest' in which case the most recent version is used, including pre-releases, * 'recommended' in which case the recommended version is used, i.e. the most recent version excluding pre-releases, the promise is rejected if only pre-release versions are available, * 'default' in which case the recommended version is used if available, or latest is used otherwise. Defaults to 'latest'.

Example

manager.get('raspberry-pi', 'default').then (stream) ->
    stream.pipe(fs.createWriteStream('foo/bar.img'))

manager.cleanCache() ⇒ Promise

Useful to manually force an image to be re-downloaded.

Kind: static method of manager
Summary: Clean the saved images cache
Access: public
Example

manager.cleanCache()

Support

If you're having any problem, please raise an issue on GitHub and the balena team will be happy to help.

Tests

Run the test suite by doing:

$ gulp test

Contribute

Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:

$ gulp lint

License

The project is licensed under the Apache 2.0 license.