/* require() plugin which returns a handle to the repo Db object for
   Fossil.require's shared Fossil.Context.  If no repo has been opened
   when this is called, it opens the repo specified via the
   --repo-db|-R=FILENAME CLI script flag.
*/

/* reminder to self: we address require.fsl directly here,
   instead of via require()'ing it, for efficiency's sake.
*/
affirm requireS2;
affirm const F = requireS2.fsl;
affirm F inherits Fossil.Context;
if(!F.db || !F.db.repo){
    requireS2(
        ['cliargs'],
        proc(args){
            var f = args.takeFlag('repo-db',args.takeFlag('R'))
                ||| throw "No repo db specified. "+
                "Pass the --repo-db|-R=filename "+
                "SCRIPT flag (after --) to the interpreter.";
            ('string' === typename f) || throw "Invalid argument type for the --repo-db|-R=DBFILE flag";
            F.openRepo(f);
        });
    affirm F.db.repo;
};
return F.db.repo;
