# qiBuild documentation

# qisys.worktree - Registering project paths

## qisys.worktree.WorkTree

class `qisys.worktree.``WorkTree`(root, sanity_check=True)

  This class represent a worktree.

  `register_self`()

    Register to the global list of all worktrees in ~/.config/qi/qibuild.xml

  `register`(observer)

    Called when an observer wants to be notified about project changes

  `load_cache`()

    Load the worktree.xml file.

  `reload`()

    Re-read every qiproject.xml. Useful when projects are added or removed, or when qiproject.xml change

  `check`()

    Perform a few sanity checks

  `dot_qi`

    Get the dot_qi directory.

  `worktree_xml`

    Get the path to .qi/worktree.xml

  `has_project`(path)

    Return True if the Path is a Projet

  `load_projects`()

    For every project in cache, re-read the subprojects and and them to the list

  `get_project`(src, raises=False)

    Get a project :param src: a absolute path, or a path relative to the worktree :param raises: Raises if project is not found :returns: a `WorkTreeProject` instance or None if raises is

    > False and project is not found

  `add_project`(path)

    Add a project to a worktree :param path: path to the project, can be absolute,

    > or relative to the worktree root

  `remove_project`(path, from_disk=False)

    Remove a project from a worktree :param path: path to the project, can be absolute,

    > or relative to the worktree root

    Parameters: | from_disk – also erase project files from disk

  `move_project`(path, new_path)

    Move a project from a worktree

  `normalize_path`(path)

    Make sure the path is a POSIX path, relative to the worktree root

Changelog CMake index Python index Index