tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

update.py (1384B)


      1 # This Source Code Form is subject to the terms of the Mozilla Public
      2 # License, v. 2.0. If a copy of the MPL was not distributed with this
      3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      4 
      5 import os
      6 
      7 from wptrunner.update.base import Step, StepRunner
      8 from wptrunner.update.tree import NoVCSTree
      9 from wptrunner.update.update import (
     10    LoadConfig,
     11    RemoveObsolete,
     12    SyncFromUpstream,
     13    UpdateMetadata,
     14 )
     15 
     16 from .tree import GeckoCommit, GitTree, HgTree
     17 from .upstream import SyncToUpstream
     18 
     19 
     20 class LoadTrees(Step):
     21    """Load gecko tree and sync tree containing web-platform-tests"""
     22 
     23    provides = ["local_tree", "sync_tree"]
     24 
     25    def create(self, state):
     26        if os.path.exists(state.sync["path"]):
     27            sync_tree = GitTree(root=state.sync["path"])
     28        else:
     29            sync_tree = None
     30 
     31        if GitTree.is_type():
     32            local_tree = GitTree(commit_cls=GeckoCommit)
     33        elif HgTree.is_type():
     34            local_tree = HgTree(commit_cls=GeckoCommit)
     35        else:
     36            local_tree = NoVCSTree()
     37 
     38        state.update({"local_tree": local_tree, "sync_tree": sync_tree})
     39 
     40 
     41 class UpdateRunner(StepRunner):
     42    """Overall runner for updating web-platform-tests in Gecko."""
     43 
     44    steps = [
     45        LoadConfig,
     46        LoadTrees,
     47        SyncToUpstream,
     48        SyncFromUpstream,
     49        RemoveObsolete,
     50        UpdateMetadata,
     51    ]