ipk-builder

0.0.6 • Public • Published

ipk-builder is a libary that creates IPK packages for either the ipkg or opkg package management systems. It may also be useful for generating simple packages for the dpkg system.

Requirements

This library assumes a *nix system with tar, gzip and fakeroot installed. These should be standard on most GNU/Linux systems.

Example usage:

var IPKBuilder = require('ipk-builder');
var builder = IPKBuilder();
builder.setBasePath('./foo'); // file paths in ipk will be relative to the base path
builder.addFiles('./foo/bin', './foo/var');
builder.addConfFiles('./foo/etc/foo.conf');
builder.addPostScripts('myscript.sh');
builder.setMeta({  
  package: "foo",
  version: "0.1",
  maintainer: "Foo Bar <foobar@example.com>",
  architecture: "ar71xx",
  description:  "Foo is a package for stuff and things.\n It is very convenient."
});
builder.build('foo-0.1.ipk');

Functions

IPKBuilder(opts)

Creates an ipk builder object. Valid opts:

  ignoreMissing: Ignore missing files and directories if set to true (default: false).

setBasePath(path)

Set the base path. File paths in the ipk will be relative to this path. As an example, if you want to package the file

/home/fungi/myproject/usr/bin/foo

such that the file "foo" appears in /usr/bin/foo when the package is installed, then the base path should be set to:

/home/fungi/myproject

The base path can be changed between subsequent calls to addFiles/addConfFiles. If unset, the base path will default to the current working directory.

addFiles(path_to_file_or_dir1, path_to_file_or_dir2, ...)

Add files or directories to package. Note that configuration files should be added with addConfFiles instead.

addConfFiles(path_to_file1, path_to_file2, ...)

Add configuration files to package. You can also add configuration files using addFiles but the config files are treated differently e.g: When a package is upgraded and its configuration file has been modified by the user, the user is asked which version of the configuration file to use.

addPostScripts(path_to_file1, path_to_file2, ...)

Add scripts to be run at the end of the package installation. If multiple scripts are specified these will all be combined into a single post script.

setMeta(obj)

Example of a meta object:

{  
  package: "foo",
  version: "0.1",
  depends: "libc, libncurses",
  provides: "foobar",
  source: "feeds/packages/libs/avahi",
  section: "net"
  status: "unknown ok not-installed",
  essential: "no",
  priority: "optional",
  maintainer: "Foo Bar <foobar@example.com>",
  architecture: "ar71xx",
  installed-Size: "2048",
  homepage: "https://foo.example.com",
  description:  "Foo is a package for stuff and things.\n It is very convenient."
}

Note that only the following fields are mandatory:

*package *version *maintainer *architecture *description

A description of the fields is available here.

setControl(control)

Alias for setMeta

build(output_filepath)

Build the ipk file and write it to output_path.

License

Licensed under GPLv3.

Copyright 2014 Marc Juul

Package Sidebar

Install

npm i ipk-builder

Weekly Downloads

10

Version

0.0.6

License

none

Last publish

Collaborators

  • juul