🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

ashtin

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ashtin - npm Package Compare versions

Comparing version
0.0.2
to
0.0.3
+73
bin/ashtin-merge-preflight.js
#!/usr/bin/env node
exports.command = {
description: "Ping ArchivesSpace and display the current version"
}
if (require.main === module) {
var api = require('../lib/load_api.js');
var argv = require('minimist')(process.argv.slice(2));
var _ = require('lodash');
if (!argv['resource'] || typeof(argv['resource']) != 'object' || argv['resource'].length != 2 ) {
console.log("Usage: ashtin merge-preflight --resource {ID1} --resource {ID2}");
}
var refSetOne = [];
var refSetTwo = [];
var requestCount = 0;
var responseCount = 0;
var logObject = function(treeNode, refSet) {
requestCount++;
api.get(treeNode.record_uri).then(function(archivalObjectRecord) {
refSet.push(archivalObjectRecord.ref_id);
responseCount++;
if (treeNode.has_children) {
_.each(treeNode.children, function(el, i) {
logObject(el, refSet);
});
}
}).catch(function(err) {
console.log(err);
responseCount++;
});
};
api.get('/repositories/:repo_id/resources/' + argv['resource'][0] + '/tree').then(function(json) {
_.each(json.children, function(el, i) {
logObject(el, refSetOne);
});
}).catch(function(x) {console.log(x);});
api.get('/repositories/:repo_id/resources/' + argv['resource'][1] + '/tree').then(function(json) {
_.each(json.children, function(el, i) {
logObject(el, refSetTwo);
});
}).catch(function(x) {console.log(x);});
var watch = function() {
setTimeout(function() {
if (requestCount < 1 || (responseCount != requestCount)) {
console.log("waiting");
watch();
} else {
var intersection = _.intersection(refSetOne, refSetTwo);
console.log(intersection);
}
}, 1000);
}
watch();
}
#!/usr/bin/env node
exports.command = {
description: "Manage user records",
arguments: "<action>"
}
if (require.main === module) {
require('../lib/utils.js');
var api = require('../lib/load_api.js');
var config = require('../lib/config.js');
var argv = require('minimist')(process.argv.slice(2));
switch(argv._.shift()) {
case 'create':
if(!argv['username'] || !argv['name'] || !argv['password']) {
console.log("Usage: ashtin users create --username={username} --name='{name}' --password={password} [--admin]");
return;
}
var admin;
var password = argv['password'];
if(argv['admin']) {
admin = true;
} else {
admin = false;
}
var user = {
username: argv['username'],
name: argv['name'],
is_admin: admin
};
api.createUser(user, password, function(err, json) {
if (err) {
console.log("Error: " + JSON.stringify(err));
} else {
console.log("Created: " + json.uri);
}
});
break;
case 'delete':
if(!argv['usernames']) {
console.log("Usage: ashtin users delete --usernames={usernames}");
return;
}
var usernames = argv['usernames'].split(',');
api.eachUser(function(err, user) {
if(usernames.indexOf(user.username) > -1) {
api.del(user.uri, function(err, body) {
if (err) {
console.log("Error: " + JSON.stringify(err));
} else {
console.log(body);
}
});
}
});
break;
case 'password-reset':
if(!argv['username'] || !argv['password']) {
console.log("Usage: ashtin users password-reset --username={username} --password={password}");
return;
}
var username = argv['username'];
var password = argv['password'];
api.eachUser(function(err, user) {
if(username == user.username) {
api.updatePassword(user, password, function(err, json) {
if (err) {
console.log("Error: " + JSON.stringify(err));
} else {
console.log("Updated: " + json.uri);
}
});
}
});
break;
default:
api.eachUser(function(err, user) {
console.log([user.username, user.name].join(','));
});
return;
}
}
#!/usr/bin/env node
// ashtin run-script examples/publish-everything.js
module.exports = function(api, generator) {
if (!api.hasSession) {
console.log("Please get logged in first: ascli setup");
throw("Not logged in");
}
api.eachResource(function(err, json) {
if(!json.publish) {
json.publish = true;
api.updateRecord(json).then(function(ok) {
console.log("Published "+json.uri);
}).catch(function(wtf) {
console.log("FAILURE "+wtf.code+" "+wtf.message);
});
}
});
};
+15
-11

@@ -14,3 +14,3 @@ #!/usr/bin/env node

if(!config.active_repo) {
console.log("Need an active repo! Run ascli setup");
console.log("Need an active repo! Run ashtin setup");
return;

@@ -25,3 +25,3 @@ }

if(!argv['record-type'] || !argv['resource'] || !argv['property'] || !argv['find'] || !argv['replace']) {
console.log("Usage: as-cli --resource {id} --record-type {type} --property {property} --find {find string or regexp} --replace {replace string}")
console.log("Usage: ashtin --resource {id} --record-type {type} --property {property} --find {find string or regexp} --replace {replace string}")
return;

@@ -31,10 +31,14 @@ }

var job = {
scope: {
jsonmodel_type: argv['record-type'],
base_record_uri: repo_url + "/resources/" + argv['resource'],
property: argv['property']
},
arguments: {
find: argv['find'],
replace: argv['replace']
job_type: 'find_and_replace_job',
job: {
jsonmodel_type: 'find_and_replace_job',
scope: {
jsonmodel_type: argv['record-type'],
base_record_uri: repo_url + "/resources/" + argv['resource'],
property: argv['property']
},
arguments: {
find: argv['find'],
replace: argv['replace']
}
}

@@ -67,3 +71,3 @@ }

api.post(repo_url + "/find_and_replace_jobs", job).
api.post(repo_url + "/jobs", job).
then(function(result) {

@@ -70,0 +74,0 @@ console.log(result.uri);

@@ -67,11 +67,19 @@ #!/usr/bin/env node

function createNode(parentUri, parentDepth) {
if (typeof(parentDepth === 'undefined'))
parentDepth = 1;
function getOpts(opts) {
var opts = opts || {};
var summary = ["a box of foos", "a box of bars", "a box of cars"][_.random(0, 2)];
return _.merge({
resource: {ref: resourceUri},
extents: [generator.extent({container_summary: summary})]
}, opts);
}
function createNode(parentUri) {
var opts = {}
if (size > 0) {
opts = {
resource: {ref: resourceUri},
extents: [generator.extent({container_summary: "a box of foos"})]
}
console.log("create node under " + parentUri)
if (parentUri) {

@@ -81,4 +89,5 @@ opts.parent = {ref: parentUri}

size = size - 1;
rq.push(function() {
api.createArchivalObject(generator.archival_object(opts)).
api.createArchivalObject(generator.archival_object(getOpts(opts))).
then(function(archivalObject) {

@@ -88,5 +97,7 @@ rq.tickDown();

console.log(archivalObject.uri);
if (parentDepth < 13 && size > 0) {
if (size > 0) {
_.times(_.random(0, 100), function() {
createNode(archivalObject.uri, parentDepth + 1);
setTimeout(function() {
createNode(archivalObject.uri);
}, _.random(100, 500));
});

@@ -109,2 +120,3 @@ }

resourceUri = resource.uri
console.log(resource.uri)
_.times(_.random(1, 10), function() {

@@ -111,0 +123,0 @@ createNode();

@@ -18,2 +18,14 @@

repository: function(opts) {
return merge(opts, {
repo_code: randomString(),
name: randomString()
});
},
repo: function(opts) {
return this.repository(opts);
},
resource: function(opts) {

@@ -20,0 +32,0 @@ return merge(opts, {

@@ -23,19 +23,19 @@ #!/usr/bin/env node

api.on('serverError', function(code) {
switch(code) {
case 412:
console.log("Your session may have expired. Try running `ashtin setup`");
break;
case 403:
console.log("Access denied. Try running `ashtin setup`");
break;
case 'ECONNREFUSED':
console.log("Unable to connect to the server at " + config.backend_url);
break;
default:
logger.debug("serverError " + code);
}
});
// api.on('serverError', function(code) {
// switch(code) {
// case 412:
// console.log("Your session may have expired. Try running `ashtin setup`");
// break;
// case 403:
// console.log("Access denied. Try running `ashtin setup`");
// break;
// case 'ECONNREFUSED':
// console.log("Unable to connect to the server at " + config.backend_url);
// break;
// default:
// logger.debug("serverError " + code);
// }
// });
module.exports = api;
{
"name": "ashtin",
"version": "0.0.2",
"version": "0.0.3",
"description": "ArchivesSpace Hacker's Toolkit (in Node).",

@@ -18,3 +18,3 @@ "repository": "https://github.com/quoideneuf/ashtin",

"ansi": "^0.3.0",
"asapi": "^0.1.3",
"asapi": "^0.1.5",
"cli-table": "^0.3.1",

@@ -21,0 +21,0 @@ "events": "^1.0.2",

Sorry, the diff of this file is not supported yet