UNPKG

1.89 kBJavaScriptView Raw
1var Promise, fs, mkdirp, untildify;
2
3fs = require('fs');
4
5mkdirp = require('mkdirp');
6
7untildify = require('untildify');
8
9Promise = require('es6-promise').Promise;
10
11module.exports = {
12 getDir: function(opts) {
13 return untildify("~/.config/autostart/");
14 },
15 getFile: function(opts) {
16 var file;
17 file = this.getDir() + opts.appName + '.desktop';
18 return file;
19 },
20 enable: function(opts) {
21 return new Promise((function(_this) {
22 return function(resolve, reject) {
23 var data, file, hiddenArg;
24 file = _this.getFile(opts);
25 hiddenArg = opts.isHiddenOnLaunch ? ' --hidden' : '';
26 data = ['[Desktop Entry]', 'Type=Application', 'Vestion=1.0', 'Name=' + opts.appName, 'Comment=' + opts.appName + ' startup script', 'Exec=' + opts.appPath + hiddenArg, 'StartupNotify=false', 'Terminal=false'].join('\n');
27 mkdirp.sync(_this.getDir());
28 return fs.writeFile(file, data, function(err) {
29 if (err != null) {
30 return reject(err);
31 }
32 return resolve();
33 });
34 };
35 })(this));
36 },
37 disable: function(opts) {
38 return new Promise((function(_this) {
39 return function(resolve, reject) {
40 var file;
41 file = _this.getFile(opts);
42 return fs.stat(file, function(err) {
43 if (err != null) {
44 return reject(err);
45 }
46 return fs.unlink(file, function(err2) {
47 if (err != null) {
48 return reject(err2);
49 }
50 return resolve();
51 });
52 });
53 };
54 })(this));
55 },
56 isEnabled: function(opts) {
57 return new Promise((function(_this) {
58 return function(resolve, reject) {
59 var file;
60 file = _this.getFile(opts);
61 return fs.stat(file, function(err, stat) {
62 return resolve(stat != null);
63 });
64 };
65 })(this));
66 }
67};