Skip to content

fesor/gulp-deb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build DEB Packages with Gulp

Note: This plugin is not ready to use in production

Deb archives is a great way for distribute your software package

Basic Usage

Install plugin:

npm install --saveDev gulp-deb

Then you can use it in your gulpfile

var gulp = require('gulp');
var deb = require('gulp-deb');

gulp.task('build', function () {

  return gulp
    .src([
      'src/**',
      'node_modules/**',
      '!**/.git/**'
    ], { base: process.cwd() })
    .pipe(deb('example.deb', {
      name: 'example',
      version: '1',
      maintainer: {
        name: 'John Doe',
        email: 'john.doe@example.org'
      },
      architecture: 'all',     // Optional. String. Architecture
      installedSize: 1024,     // Optional. Integer. Installed-Size, KiB.
      preDepends: [
        'dpkg (>= 1.15.6)'
      ],                       // Optional. Array or String. Pre-Depends
      depends: [ 
        'libc6 (>= 2.1)' 
      ],                       // Optional. Array or String. Depends
      recommends: null,        // Optional. Array or String. Recommends
      suggests: null,          // Optional. Array or String. Suggests
      enhances: null,          // Optional. Array or String. Enhances
      section: 'devel',        // Optional. String. Section
      priority: 'optional',    // Optional. String. Priority
      homepage: 'example.org', // Optional. String. Homepage
      short_description: 'some short description',
      long_description: 'some long description'
    }))
    .pipe(gulp.dest('builds/'));
});

More information about package control files here.

Debian preinst, postinst, prerm, and postrm script

These files are executable scripts which are automatically run before or after a package is installed. Read more here.

var gulp = require('gulp');
var deb = require('gulp-deb');
var fs = require("fs");

gulp.task('build', function () {

  var preinstContent = fs.readFileSync("scripts/preinst", "utf8");
  var postrmContent = fs.readFileSync("scripts/postrm", "utf8");

  return gulp
    .src([
      'src/**',
      'node_modules/**',
      '!**/.git/**'
    ], { base: process.cwd() })
    .pipe(deb('example.deb', {
      name: 'example',
      version: '1.0.0-1',
      maintainer: {
        name: 'John Doe',
        email: 'john.doe@example.org'
      },
      short_description: 'some short description',
      long_description: 'some long description',
      //...
      scripts: {
        preinst: preinstContent,
        postrm: postrmContent
      }
    }))
    .pipe(gulp.dest('builds/'));
});

TODO

  • Add md5sums option for generate corresponding file with checksum for every file

Contribution

Feel free to contribute! Any help will be useful!

About

Build DEB archives with gulp

Resources

Stars

Watchers

Forks

Packages

No packages published