From ccc8dfda56ed0bc917cb8cadef485a6a6ae0678f Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Mon, 26 Jun 2017 15:18:55 +0100 Subject: [PATCH 1/5] Simplify local storage with a single cache Also move cache folder to [the more proper] ~/Library/Caches --- lib/awm.js | 6 ++---- scripts/cleanup.js | 2 +- scripts/init.js | 9 +++------ 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/awm.js b/lib/awm.js index 986c284..c40a2e1 100644 --- a/lib/awm.js +++ b/lib/awm.js @@ -14,9 +14,8 @@ var exec = require('child_process').exec; var PACKAL_URL = 'https://raw.github.com/packal/repository/master/'; var MANIFEST_URL = PACKAL_URL + 'manifest.xml'; -var LOCAL_STORAGE_DIR = process.env.HOME + '/.awm/'; -var manifestFile = LOCAL_STORAGE_DIR + 'manifest.json'; -var cacheDir = LOCAL_STORAGE_DIR + 'cached/'; +var cacheDir = process.env.HOME + '/Library/Caches/awm/'; +var manifestFile = cacheDir + 'manifest.json'; var fetchAndParseManifest = function(callback) { @@ -255,7 +254,6 @@ module.exports = { getWorkflowDir: getWorkflowDir, config: { packalUrl: PACKAL_URL, - directory: LOCAL_STORAGE_DIR, cacheDir: cacheDir, manifest: manifestFile, getAlfredPreference: getAlfredPreference diff --git a/scripts/cleanup.js b/scripts/cleanup.js index 0205cff..b2f9507 100644 --- a/scripts/cleanup.js +++ b/scripts/cleanup.js @@ -3,5 +3,5 @@ var awm = require('../lib/awm'); var fs = require('fs-extra'); -fs.removeSync(awm.config.directory); +fs.removeSync(awm.config.cacheDir); process.exit(); diff --git a/scripts/init.js b/scripts/init.js index 3b85407..fc81a07 100644 --- a/scripts/init.js +++ b/scripts/init.js @@ -1,13 +1,10 @@ 'use strict'; var awm = require('../lib/awm'); -var fs = require('fs'); +var fs = require('fs-extra'); -if (!fs.existsSync(awm.config.directory)) { - fs.mkdirSync(awm.config.directory); - if(!fs.existsSync(awm.config.cacheDir)){ - fs.mkdirSync(awm.config.cacheDir); - } +if (!fs.existsSync(awm.config.cacheDir)) { + fs.mkdirpSync(awm.config.cacheDir); } awm.fetchAndParseManifest(function(jsManifest){ From 2fbc31545a69bcf7929193852d65dbd2c5abbb64 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Mon, 26 Jun 2017 15:23:07 +0100 Subject: [PATCH 2/5] Add support for AWM_CACHE environment variable Avoid inflicting enforced hard-coded file paths on the user. --- lib/awm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/awm.js b/lib/awm.js index c40a2e1..69f20b6 100644 --- a/lib/awm.js +++ b/lib/awm.js @@ -14,7 +14,7 @@ var exec = require('child_process').exec; var PACKAL_URL = 'https://raw.github.com/packal/repository/master/'; var MANIFEST_URL = PACKAL_URL + 'manifest.xml'; -var cacheDir = process.env.HOME + '/Library/Caches/awm/'; +var cacheDir = process.env.AWM_CACHE || process.env.HOME + '/Library/Caches/awm/'; var manifestFile = cacheDir + 'manifest.json'; var fetchAndParseManifest = function(callback) { From d900be0bfdd135ec4e638109c9ab73776608721b Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 27 Jun 2017 00:09:22 +0100 Subject: [PATCH 3/5] Fix preferences file lookup Also update to work with Alfred 3 --- lib/awm.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/awm.js b/lib/awm.js index 69f20b6..8ee23b7 100644 --- a/lib/awm.js +++ b/lib/awm.js @@ -224,11 +224,9 @@ var getWorkflowDir = function(bundleId, callback) { var getAlfredPreference = function(callback){ - var alfredPref = process.env.HOME + '/Library/Preferences/com.runningwithcrayons.Alfred-Preferences.plist'; + var alfredPref = process.env.HOME + '/Library/Preferences/com.runningwithcrayons.Alfred-Preferences*.plist'; - var alfredNewStyle = process.env.HOME + '/Library/Preferences/com.runningwithcrayons.Alfred-Preferences-NewStyle.plist'; - - exec('plutil -convert xml1 ' + alfredPref + ' -o ' + alfredNewStyle, function(error){ + exec('plutil -convert xml1 ' + alfredPref + ' -o -', function(error, data){ if(error){ console.error(('Cannot convert Alfred base preference file : \n' + error).red); @@ -236,9 +234,9 @@ var getAlfredPreference = function(callback){ }else{ - var prefFile = plist.parse(fs.readFileSync(alfredNewStyle, 'utf8')); + var prefs = plist.parse(data); - var location = (prefFile.syncfolder === undefined) ? process.env.HOME + '/Library/Application Support/Alfred 2' : prefFile.syncfolder.replace('~', process.env.HOME); + var location = (prefs.syncfolder === undefined) ? process.env.HOME + '/Library/Application Support/Alfred 3' : prefs.syncfolder.replace('~', process.env.HOME); callback(location + '/Alfred.alfredpreferences/workflows/'); } From eb637e4beca4d44603dee1eefc26c8eb56d50ab7 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 27 Jun 2017 00:10:53 +0100 Subject: [PATCH 4/5] Add command aliases --- cmds/install.js | 1 + cmds/list.js | 1 + cmds/remove.js | 1 + 3 files changed, 3 insertions(+) diff --git a/cmds/install.js b/cmds/install.js index dd56470..fb818c1 100644 --- a/cmds/install.js +++ b/cmds/install.js @@ -6,6 +6,7 @@ module.exports = function(program) { program .command('install ') + .alias('i') .description('Install specified workflow.') .action(function(bundleID, options){ diff --git a/cmds/list.js b/cmds/list.js index 97aff2c..fcdc779 100644 --- a/cmds/list.js +++ b/cmds/list.js @@ -7,6 +7,7 @@ module.exports = function(program) { program .command('list') + .alias('ls') .description('List installed workflows.') .action(function(){ diff --git a/cmds/remove.js b/cmds/remove.js index aee29de..d2b8bf8 100644 --- a/cmds/remove.js +++ b/cmds/remove.js @@ -6,6 +6,7 @@ module.exports = function(program) { program .command('remove ') + .alias('rm') .description('Remove specified workflow.') .action(function(bundleID, options){ From 194aecbaeb0ddda850b6f747161cce38c9777a1b Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 27 Jun 2017 00:36:19 +0100 Subject: [PATCH 5/5] Add to contributors --- Readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 084506f..87efb52 100644 --- a/Readme.md +++ b/Readme.md @@ -89,4 +89,5 @@ Copyright (c) 2014 Jonathan Wiesel # Contributors :heart: -* [claui](https://github.com/claui) \ No newline at end of file +* [claui](https://github.com/claui) +* [@danielbayley](https://github.com/danielbayley)