Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stpettersens/gulp-debian

:tropical_drink: Gulp plug-in to create a Debian package.
https://github.com/stpettersens/gulp-debian

debian gulp-plugin json package yaml

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

### gulp-debian
> :tropical_drink: Gulp plug-in to create a Debian package.

[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)
[![npm version](https://badge.fury.io/js/gulp-debian.svg)](http://npmjs.com/package/gulp-debian)

** Please note that this project [did not use](https://github.com/stpettersens/gulp-debian/issues/19) [semantic versioning](https://semver.org) 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:

```js
'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 ',
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](demo_0.1-2_i386.json):

```js
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](https://github.com/nodeca/js-yaml) module (`npm install --save js-yaml`):

```js
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

* [Sam Saint-Pettersen](https://github.com/stpettersens)
* [Oliver Skånberg-Tippen](https://github.com/oskanberg)
* [Olaf Radicke](https://github.com/OlafRadicke)
* [Míguel Ángel Mulero Martínez](https://github.com/McGiverGim)
* [Alexey Lukomsky](https://github.com/lucomsky)
* [haslinghuis](https://github.com/haslinghuis)
* [Dominic Clifton](https://github.com/hydra)
* [Gregory Marco](https://github.com/CatturaGreg)

##### License

[MIT](https://opensource.org/licenses/MIT)