gulp-debian

Gulp plug-in to create a Debian package

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
gulp-debian
750.3.25 months ago7 years agoMinified + gzip package size for gulp-debian in KB

Readme

gulp-debian

:tropicaldrink: Gulp plug-in to create a Debian package.

js-standard-style npm version
Please note that this project did not use semantic versioning prior to v1.0.0. It will be adopted as of that version.
Install
$ npm install --save-dev gulp-debian
Usage
Define package in-line:
'use strict'

const gulp = require('gulp')
const deb = require('gulp-debian')

gulp.task('default', function (done) {
  return gulp.src(['demo.sh','blob.bin'])
  .pipe(deb({
    package: 'demo',
    version: '0.1-2',
    section: 'base',
    priority: 'optional',
    architecture: 'i386',
    maintainer: 'Mr. Apt <apt@nowhere.tld>',
    description: 'A dummy package\n Long description starts here...',
    preinst: [ 'echo "hello from dummy package"' ],
    postinst: [ 'cat -n /opt/demo/.npmignore' ],
    prerm: [ 'cat -n /opt/demo/.npmignore' ],
    postrm: [ 'echo "bye from dummy package"' ],
    conffiles: 'configs/dir',
    changelog: [
      {
        version: '0.1-2',
        distribution: 'unstable',
        urgency: 'low',
        date: new Date('2016-12-24T12:40:10'),
        changes: [
          'Added another feature.',
          'Fixed feature X.'
        ]
      },
      {
        version: '0.1-1',
        distribution: 'unstable',
        urgency: 'low',
        date: '2016-12-23T11:24:00',
        changes: [
          'First release.'
        ]
      }
    ],
    _target: 'opt/demo',
    _out: 'dist',
    _copyright: 'path/to/copyright',
    _clean: true,
    _verbose: true
  }))
  done()
})

Alternatively, you can define your package in an external JSON file
:
gulp.task('default', function (done) {
  return gulp.src(['demo.sh', 'blob.bin'])
  .pipe(deb('demo_0.1-2_i386.json'))
  done()
})

You can also use a YAML file to define your package. Just convert it to an Object first using the js-yaml module (npm install --save js-yaml):
const YAML = require('js-yaml')
const fs = require('fs')

gulp.task('default', function (done) {
  return gulp.src(['demo.sh', 'blob.bin'])
  .pipe(deb(YAML.load(fs.readFileSync('demo_0.1-2_i386.yml').toString())))
  done()
})
Options
  • Options: Object containing properties for a Debian file and the following parameters:
* preinst: String with a path to script or array of commands to run for the package's *pre-install* script (optional).
* postint: String with a path to script or array of commmands to run for the package's *post-install* script (optional).
* prerm: String with a path to script or array of commands to run for the package's *pre-remove* script (optional).
* postrm: String with a path to script or array of commmands to run for the package's *post-remove* script (optional).
* conffiles: string - path to the directory with configs. All configs must be placed from this directory in subdirectories starting from root folder (optional).
* changelog: Array of versions and their changes to write to the package's *changelog* (optional, but recommended). Options are:
    * version: String for version with changes.
    * distribution: String for version distribution.
    * urgency: String for version urgency.
    * date: Date object or String in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) notation for version date.
    * changes: Array of changes made.
* _target: string - The installation target for the created Debian package (mandatory).
* _out: string - The target directory to create the Debian package in (mandatory).
* _copyright: string - The path to plain copyright file (functionally optional, but mandatory in [Debian policy](https://www.debian.org/doc/debian-policy/#copyright-information)).

This should be **mandatory** in packages you intend to publish, but for testing purposes
this can omitted for testing stage packages.

* _clean: boolean - If true, removes the temporary directory created in the target directory with the same structure than the Debian package.
* _verbose: boolean - Verbose output from dpkg-deb utility (optional; true if omitted).
(or)
String containing filename for external JSON file defining package.
Contributors
License
MIT