mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-02-06 06:54:58 +00:00
70 lines
1.6 KiB
JavaScript
70 lines
1.6 KiB
JavaScript
// credentials.js
|
|
// Namhyeon Go <abuse@catswords.net>
|
|
// https://github.com/gnh1201/welsonjs
|
|
//
|
|
var FILE = require("lib/file");
|
|
|
|
var CREDENTIALS_DATA = [];
|
|
|
|
function getTextFromFile(filename) {
|
|
if (FILE.fileExists(filename)) {
|
|
return FILE.readFile(filename, FILE.CdoCharset.CdoUTF_8);
|
|
}
|
|
|
|
return "";
|
|
}
|
|
|
|
function readFromFile(type, filename) {
|
|
var data = JSON.parse(getTextFromFile(filename));
|
|
|
|
for (var provider in data) {
|
|
var prelude = "file:";
|
|
var value = (function(s) {
|
|
if (s.indexOf(prelude) == 0) {
|
|
var filename = s.substring(prelude.length);
|
|
return getTextFromFile(filename);
|
|
} else {
|
|
return s;
|
|
}
|
|
})(data[provider]);
|
|
|
|
push(type, provider, value);
|
|
}
|
|
}
|
|
|
|
function push(type, provider, value) {
|
|
CREDENTIALS_DATA.push({
|
|
"type": type,
|
|
"provider": provider,
|
|
"value": value
|
|
});
|
|
}
|
|
|
|
function get(type, provider, index) {
|
|
var index = index || 0;
|
|
var matches = CREDENTIALS_DATA.reduce(function(a, x) {
|
|
if (x.type == type && x.provider == provider) {
|
|
a.push(x.value);
|
|
}
|
|
|
|
return a;
|
|
}, []);
|
|
|
|
if (matches.length - 1 < index) {
|
|
return null;
|
|
}
|
|
|
|
return matches[index];
|
|
}
|
|
|
|
readFromFile("apikey", "data/apikey.json");
|
|
|
|
exports.readFromFile = readFromFile;
|
|
exports.push = push;
|
|
exports.get = get;
|
|
|
|
exports.VERSIONINFO = "Credential store (credentials.js) version 0.1";
|
|
exports.AUTHOR = "abuse@catswords.net";
|
|
exports.global = global;
|
|
exports.require = global.require;
|