示例#1
0
def git_update_ctx(source: Path, ctx: context.Context):
    "Update ctx from git"
    repo = Repo(source)
    head_commit = repo.head.commit
    # repo_config = repo.config_reader()
    ctx.update({
        "project": {
            "url": repo.remotes.origin.url, # git remote get-url origin
            "name": repo.remotes.origin.url.rstrip('.git').rpartition("/")[-1],  # git remote get-url origin | xargs basename -s .git
            "version": str(head_commit),  # GIT_VERSION="$(git rev-list HEAD -n 1)"
            "branch": head_commit.name_rev.split(" ")[-1],  #  BRANCH="$(git name-rev --name-only HEAD)"
            "updated_date": head_commit.committed_date,
            "author": head_commit.author.name,  # $(git config user.name) <$(git config user.email)>
            "author_email": head_commit.author.email,
        }
    })
示例#2
0
    class configuration:
        "Dict-like for config"
        def setup(self):
            self.c = Context(config={'foo': 'bar'})

        def getitem(self):
            "___getitem__"
            eq_(self.c['foo'], 'bar')

        def get(self):
            eq_(self.c.get('foo'), 'bar')
            eq_(self.c.get('biz', 'baz'), 'baz')

        def keys(self):
            skip()

        def update(self):
            self.c.update({'newkey': 'newval'})
            eq_(self.c['newkey'], 'newval')
示例#3
0
    class configuration_proxy:
        "Dict-like proxy for self.config"

        def setup(self):
            config = Config({'foo': 'bar'})
            self.c = Context(config=config)

        def direct_access_allowed(self):
            eq_(self.c.config.__class__, Config)
            eq_(self.c.config['foo'], 'bar')
            eq_(self.c.config.foo, 'bar')

        def getitem(self):
            "___getitem__"
            eq_(self.c['foo'], 'bar')

        def getattr(self):
            "__getattr__"
            eq_(self.c.foo, 'bar')

        def get(self):
            eq_(self.c.get('foo'), 'bar')
            eq_(self.c.get('biz', 'baz'), 'baz')

        def keys(self):
            skip()

        def values(self):
            skip()

        def iter(self):
            "__iter__"
            skip()

        def update(self):
            self.c.update({'newkey': 'newval'})
            eq_(self.c['newkey'], 'newval')
示例#4
0
    class configuration_proxy:
        "Dict-like proxy for self.config"
        def setup(self):
            config = Config({'foo': 'bar'})
            self.c = Context(config=config)

        def direct_access_allowed(self):
            eq_(self.c.config.__class__, Config)
            eq_(self.c.config['foo'], 'bar')
            eq_(self.c.config.foo, 'bar')

        def getitem(self):
            "___getitem__"
            eq_(self.c['foo'], 'bar')

        def getattr(self):
            "__getattr__"
            eq_(self.c.foo, 'bar')

        def get(self):
            eq_(self.c.get('foo'), 'bar')
            eq_(self.c.get('biz', 'baz'), 'baz')

        def keys(self):
            skip()

        def values(self):
            skip()

        def iter(self):
            "__iter__"
            skip()

        def update(self):
            self.c.update({'newkey': 'newval'})
            eq_(self.c['newkey'], 'newval')