60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
#! /usr/bin/env runjs
|
|
|
|
var jose = require('component-jose.js');
|
|
var args = require('component-args.js');
|
|
|
|
var main = () => {
|
|
var parsedArgs = args.parseARGS();
|
|
|
|
var secureosssendfileConfRFile = __.rfile.from('~/.jssp/config/secureosssendfile.jwk');
|
|
if (secureosssendfileConfRFile.notExists()) {
|
|
xprintln('[ERROR] secureosssendfile.jwk NOT found.');
|
|
return;
|
|
}
|
|
var jwk = jose.jwk.load(secureosssendfileConfRFile.string());
|
|
|
|
var osssendfilejsRFile = __.rfile.from('~/bin/osssendfile.js');
|
|
if (osssendfilejsRFile.notExists()) {
|
|
xprintln('[ERROR] osssendfile.js NOT found.')
|
|
return;
|
|
}
|
|
|
|
if ((parsedArgs.args.length != 2) && (parsedArgs.args.length != 3)) {
|
|
println('secureosssendfile.js -- secure upload file to play.hatter.me');
|
|
println();
|
|
println('secureosssendfile.js file.ext [newFn] keywords');
|
|
return;
|
|
}
|
|
var fn = parsedArgs.args[0];
|
|
var newFn = fn;
|
|
var kw;
|
|
if (parsedArgs.args.length == 2) {
|
|
kw = parsedArgs.args[1];
|
|
} else {
|
|
newFn = parsedArgs.args[1];
|
|
kw = parsedArgs.args[2];
|
|
}
|
|
|
|
if ($STR(newFn) == '_IN') {
|
|
print('Input new fn: ');
|
|
newFn = java.lang.System.console().readLine();
|
|
println('[INFO] Input file name: ' + newFn);
|
|
}
|
|
|
|
|
|
var encFn = $$.date().millis() + '.gpg';
|
|
xprintln('[INFO] GPG encrypt file: ' + fn + " -> " + encFn)
|
|
$$.shell(true).commands('gpg', '-e', '-r', 'D0386B7F', '-o', encFn, fn).run();
|
|
|
|
var jweNewFn = 'JWE:' + jose.jwe.enc(jwk, newFn);
|
|
|
|
xprintln('[INFO] Send file: ' + encFn + ' -> ' + jweNewFn);
|
|
$$.shell(true).commands('osssendfile.js', encFn, jweNewFn, kw).run();
|
|
|
|
$$.file(encFn).delete();
|
|
xprintln('[INFO] Done!')
|
|
};
|
|
|
|
main();
|
|
|