1.0.0 • Published 9 years ago

pxm2png v1.0.0

Weekly downloads
1
License
ISC
Repository
github
Last release
9 years ago

Automator task and example gruntfile for Pixelmator conversions using grunt watch

Based on http://www.mrspeaker.net/2013/07/29/pixelmator-save-project-reload/

Example usage with grunt:

Gruntfile.js

var pxm2png = require('pxm2png');
var path = require('path');
module.exports = function(grunt) {
  grunt.initConfig({
    watch: {
      pxm: {
        files   : ['**/*.pxm'],
        tasks   : ['pxm2png'],
        options : { spawn: false },
        modified: []
      }
    }
  });
 
  grunt.registerTask('pxm2png', 'convert Pixelmator files to pngs', function() {
    var tool = path.join(__dirname, 'workflow/pxm2png/pxm2png.app');
    var target = path.join(__dirname, grunt.config("pxm.modified")[0]);
    grunt.log.writeln('Converting pxm file: ' + target);
    var cp = grunt.util.spawn({
      cmd: 'open', args: [ pxm2png.app, '--args', target ]
    }, function (err, res, code) {
      if (err) throw err.stack;
      if (code == 0) return;
      grunt.log.writeln("Error converting .pxm file:", target, res.stderr);
    });
  });
 
  // Set the pxm file changed to be retrieved by pxm2png task
  grunt.event.on('watch', function(action, filepath) {
    if (grunt.file.isMatch('**/*.pxm', filepath)) {
      grunt.config("pxm", { modified: [filepath] })
    }
  });
 
  // Load plugin
  grunt.loadNpmTasks('grunt-contrib-watch');
 
  // Default task(s).
  grunt.registerTask('default', []);
};