コード例 #1
0
ファイル: test_vault.js プロジェクト: deztructor/the-vault
fixture.addTest('config_global', function() {
    var units, mod_count;

    register_unit('unit1', true);
    var unit1_fname = os.path(global_mod_dir, "unit1" + ".json");
    assert.ok(os.path.isfile(unit1_fname), "unit 1 global config");

    units = cfg.global.units();
    mod_count = 0;
    assert.ok('unit1' in units, "Unit in config");
    units.each(function(){ ++mod_count; })
        assert.equal(mod_count, 1, "One unit/member");


    register_unit('unit2', true);
    units = cfg.global.units();
    mod_count = 0;
    var unit2_fname = os.path(global_mod_dir, "unit2" + ".json");
    assert.ok(os.path.isfile(unit1_fname), "unit 1 global config");
    units.each(function(){ ++mod_count; })
        assert.ok('unit2' in units, "Unit2 in config");
    assert.equal(mod_count, 2, "One unit/member");
    assert.ok(os.path.isfile(unit1_fname), "unit 1 global config");

    api.execute({action : "unregister", global : true
                , unit : "unit1"});
    assert.ok(!os.path.exists(unit1_fname), "global config is removed");
});
コード例 #2
0
ファイル: tools.js プロジェクト: henriksa/sailfish-utilities
exports.removeBackups = function(msg, ctx) {
    var os = require("os");
    var home = os.home();
    if (!os.path.isDir(home))
        error.raise({message: "No home directory " + home});
    os.rmtree(os.path(home, ".vault"));
};
コード例 #3
0
exports.connect = function(params) {
    params = params || {};
    debug.info((params.reconnect ? "re" : "") + "connect to vault");

    if (!(actor_ === undefined || params.reconnect)) {
        if (params.on_done)
            params.on_done();
        return;
    }

    home_ = params.home || os.home();
    vault_dir_ = params.vault || os.path(home_, '.vault');
    debug.debug("Vault in", vault_dir_, ", Home is", home_);
    init_actor(params.reconnect);
    var sync_config = function() {
        actor().request("sync_config", {}
                      , { on_reply: params.on_done, on_error: params.on_error});
    };
    var init = function() {
        var msg = {"user.name" : "Some User",
                   "user.email" : "*****@*****.**"};
        actor().request("init"
                      , msg
                      , { on_reply: sync_config, on_error: params.on_error } );
    };
    actor().request("connect", vault_dir(), {on_reply: init, on_error: error.raise});
    if (!params.on_done) {
        debug.debug("Wait for request to be completed");
        actor().wait();
    }
};
コード例 #4
0
ファイル: test_vault.js プロジェクト: deztructor/the-vault
fixture.addTest('simple_blobs', function() {
    var vault_config;
    os.rmtree(home);
    os.mkdir(home);
    vault_init();
    register_unit('unit1', false);
    vault_config = vault.config().units();
    assert.ok('unit1' in vault_config
             , util.dump('no unit1 in vault config', vault_config));

    var unit1_dir = os.path(home, 'unit1');
    os.mkdir(unit1_dir);
    var unit1_blob = os.path(unit1_dir, 'blob1');
    os.write_file(unit1_blob, "1\n2\n3\n");
    assert.ok(os.path.isdir(unit1_dir), "unit1 is prepared")
    assert.ok(os.path.isfile(unit1_blob), "unit1 blob is prepared")

    var is_started = true, is_failed = false;
    vault.backup(home, {}, function(progress) {
        switch(progress.status) {
            case "fail":
            is_failed = true;
            break;
            case "begin":
            is_started = true;
            break;
            default:
            break;
        }
    });
    assert.ok(is_started, "backup was not started");
    assert.ok(!is_failed, "backup is failed");
    assert.ok(os.path.isdir(unit1_dir), "unit1 is still here");
    assert.ok(os.path.isfile(unit1_blob), "unit1 blob is still here");
    var unit1_vault = vault.unit_path('unit1');
    var unit1_vault_path = unit1_vault.bin().absolute;
    assert.ok(os.path.isdir(unit1_vault_path), "unit1 is in the vault");
    var unit1_vault_blob = os.path(unit1_vault_path, 'unit1', 'blob1');
    assert.ok(os.path.exists(unit1_vault_blob)
             , "unit1 blob1 is in the vault");
    assert.ok(os.path.isSymLink(unit1_vault_blob)
             , "unit1 blob1 is symlink");

});
コード例 #5
0
ファイル: test_vault.js プロジェクト: deztructor/the-vault
fixture.addTest('config_local', function() {
    var units, mod_count
      , vault_config;

    register_unit('unit1', false);
    var config_dir = os.path(vault_dir, '.modules');
    var config = cfg.system({units_dir: config_dir});
    assert.ok(os.path.isfile(config.path('unit1')), "unit1 config file");
    vault_config = vault.config().units();
    assert.ok('unit1' in vault_config
             , util.dump('no unit1 in vault config', vault_config));

    api.execute({action : "unregister", vault : vault_dir
                , unit : "unit1"});
    vault_config = vault.config().units();
    assert.ok(!('unit1' in vault_config)
             , util.dump('no unit1 in vault config', vault_config));
});
コード例 #6
0
ファイル: pictures.js プロジェクト: deztructor/the-vault
 bin_dir : function(home) {
     return os.path(home, 'Pictures');
 }
コード例 #7
0
ファイル: test_vault.js プロジェクト: deztructor/the-vault
var assert = require('test');
var util = require('util');
var os = require('os');
var error = require('error');
var debug = require('debug');

//debug.level('debug');

var home = '/tmp/.test-the-vault-431f7f8b665d3cc2a1a4a8c3c74ad5ff';
var vault_dir = os.path(home, '.vault');
var global_mod_dir = os.path(home, '.units');
var vault, api, cfg, unit;

var fixture = assert.fixture();

fixture.addSetup(function() {
    os.path.exists(home) && error.raise({dir : home, msg : "should not exist"});
    os.mkdir(home);
    fixture.addTeardown(function() {
        if (!fixture.is_failed)
            os.rmtree(home);
    });
});

fixture.addTestSetup(function() {
    api = require('vault/vault');
    cfg = require('vault/config');
    unit = require('vault/unit');

    cfg.global.units_dir = global_mod_dir;
    os.rmtree(global_mod_dir);
コード例 #8
0
var context = require('vault_test_context');
var vault_dir = context.vault_dir;
var home = context.home;
var os = require('os');
var api = require('./module1.js');
api.connect({home : home, vault : vault_dir});
var is_failed = false, err, export_ctx, tgt_path, rc = -1, import_ctx;
tgt_path = os.path(context.home, "sd");
os.mkdir(tgt_path);

// var git_dir = os.path(context.vault_dir, ".git");
// var ftree_git_before_export = get_ftree(git_dir);
api.export_import_prepare
({action: "export", path: tgt_path}
 , {on_done: function(ctx) { export_ctx = ctx; },
    on_error: function(e) { is_failed = true; err = e; }
   });
api.wait();

api.export_import_execute
(export_ctx
 , {on_done: function(ret_rc) {
     rc = ret_rc;
 }
    , on_error: function(e) {
        is_failed = true;
        err = e;
    }});
api.wait();
コード例 #9
0
ファイル: contacts.js プロジェクト: deztructor/the-vault
var cmdline = sys.getopt({
    data_dir : { short_ : "d", long_ : "dir",
                 required : true, has_param : true},
    bin_dir : { short_ : "b", long_ : "bin-dir",
                required : true, has_param : true},
    home : { short_ : "H", long_ : "home-dir",
             required : true, has_param : true},
    action : { short_ : "a", long_ : "action",
               required : true, has_param : true}
}).parse(qtscript.script.args)

var options = cmdline.opts
var action = options.action;
var src, dst
var my = os.path(options.home, 'vcf', 'out', '.')
switch (action) {
case 'export':
    print("EXPORT")
    src = my
    os.cptree(src, options.data_dir)
    break;
case 'import':
    print("IMPORT")
    dst = my
    os.update_tree(options.data_dir, dst)
    break;
default:
    error.raise({ msg : "Unknown action", action : action});
    break;
}