Nerves v0.7.4 Nerves.Package View Source

Defines a Nerves package struct and helper functions.

A Nerves package is an application which defines a Nerves package configuration file at the root of the application path. The configuration file is nerves.exs and uses Mix.Config to list configuration values.

Example Configuration

  use Mix.Config

  version =
    Path.join(__DIR__, "VERSION")
    |> File.read!
    |> String.trim

  pkg =

  config pkg, :nerves_env,
    type: :system,
    version: version,
    compiler: :nerves_package,
    artifact_url: [
      "https://github.com/nerves-project/#{pkg}/releases/download/v#{version}/#{pkg}-v#{version}.tar.gz",
    ],
    platform: Nerves.System.BR,
    platform_config: [
      defconfig: "nerves_defconfig",
    ],
    checksum: [
      "linux",
      "rootfs_overlay",
      "uboot",
      "bbb-busybox.config",
      "fwup.conf",
      "nerves_defconfig",
      "nerves.exs",
      "post-createfs.sh",
      "uboot-script.cmd",
      "VERSION"
    ]

Keys

Required

  • :type - The Nerves package type. Can be any one of the following

    • :system - A Nerves system.
    • :system_platform - A set of build tools for a Nerves system.
    • :toolchain - A Nerves toolchain
    • :toolchain_platform - A set of build tools for a Nerves toolchain.
  • :version - The package version

Optional

  • :compiler - The Mix.Project compiler for the package. Example: :nerves_package
  • :platform - The application which is the packages build platform.
  • :checksum - A list of files and top level folders to expand paths for use when calculating the checksum of the package source.

Link to this section Summary

Functions

Builds the package and produces an artifact. See Nerves.Package.Artifact for more information

Produce a base16 encoded checksum for the package from the list of files and expanded folders listed in the checksum config key

Cleans the artifacts for the package providers of all packages

Takes the path to the package and returns the path to its package config

Loads the package config and parses it into a %Package{}

Starts an interactive shell with the working directory set to the package path

Determines if the artifact for a package is stale and needs to be rebuilt

Link to this section Types

Link to this type t() View Source
t() :: %Nerves.Package{app: atom, compiler: atom, config: Keyword.t, dep: :project | :path | :hex | :git, path: binary, platform: atom, provider: atom, type: :system | :package | :toolchain, version: Version.t}

Link to this section Functions

Builds the package and produces an artifact. See Nerves.Package.Artifact for more information.

Produce a base16 encoded checksum for the package from the list of files and expanded folders listed in the checksum config key.

Link to this function clean(pkg) View Source
clean(Nerves.Package.t) :: :ok | {:error, term}

Cleans the artifacts for the package providers of all packages

Link to this function config_path(path) View Source
config_path(String.t) :: String.t

Takes the path to the package and returns the path to its package config.

Link to this function load_config(arg) View Source
load_config({app :: atom, path :: String.t}) :: Nerves.Package.t

Loads the package config and parses it into a %Package{}

Starts an interactive shell with the working directory set to the package path

Determines if the artifact for a package is stale and needs to be rebuilt.