Skip to content
This repository has been archived by the owner on Sep 23, 2024. It is now read-only.

Manage device base operating systems resources with caching support.

License

Notifications You must be signed in to change notification settings

balena-io-modules/balena-image-manager

Repository files navigation

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, options) ⇒ Promise.<NodeJS.ReadableStream>

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

Kind: inner 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'.
options Object
options?.developmentMode boolean

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: inner 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.