Deploy for development
This project uses pip to manage the package. If you want to work on the
project yourself you can create the necessary links via:
$ pip3 install --user -e .
That will install a backlink ~/.local/bin/kas to this project. Now you are
able to call it from anywhere.
Class reference documentation
kas.kas
Module
This module is the main entry point for kas, setup tool for bitbake based
projects
kas.libkas
Module
This module contains the core implementation of kas.
-
class
kas.libkas.
LogOutput
(live)[source]
Handles the log output of executed applications
-
log_stderr
(line)[source]
This method is called when a line is received over stderr.
-
log_stdout
(line)[source]
This method is called when a line is received over stdout.
-
kas.libkas.
find_program
(paths, name)[source]
Find a file within the paths array and returns its path.
-
kas.libkas.
get_build_environ
()[source]
Creates the build environment variables.
-
kas.libkas.
kasplugin
(plugin_class)[source]
A decorator that registers kas plugins
-
kas.libkas.
repos_apply_patches
(repos)[source]
Applies the patches to the repositories.
-
kas.libkas.
repos_fetch
(repos)[source]
Fetches the list of repositories to the kas_work_dir.
-
kas.libkas.
run_cmd
(cmd, cwd, env=None, fail=True, liveupdate=True)[source]
Runs a command synchronously.
-
kas.libkas.
run_cmd_async
(cmd, cwd, env=None, fail=True, liveupdate=True)[source]
Run a command asynchronously.
-
kas.libkas.
ssh_add_key
(env, key)[source]
Adds an ssh key to the ssh-agent
-
kas.libkas.
ssh_cleanup_agent
()[source]
Removes the identities and stops the ssh-agent instance
-
kas.libkas.
ssh_no_host_key_check
()[source]
Disables ssh host key check
-
kas.libkas.
ssh_setup_agent
(envkeys=None)[source]
Starts the ssh-agent
kas.libcmds
Module
This module contains common commands used by kas plugins.
-
class
kas.libcmds.
CleanupSSHAgent
[source]
Removes all the identities and stops the ssh-agent instance.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
Command
[source]
An abstract class that defines the interface of a command.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
FinishSetupRepos
[source]
Finalizes the repo setup loop
-
execute
(ctx)[source]
TODO refactor protected-access
-
class
kas.libcmds.
InitSetupRepos
[source]
Prepares setting up repos including the include logic
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
Loop
(name)[source]
A class that defines a set of commands as a loop.
-
add
(command)[source]
Appends a command to the loop.
-
execute
(ctx)[source]
Executes the loop.
-
class
kas.libcmds.
Macro
[source]
Contains commands and provides method to run them.
-
add
(command)[source]
Appends commands to the command list.
-
run
(ctx, skip=None)[source]
Runs a command from the command list with respect to the
configuration.
-
class
kas.libcmds.
ReposApplyPatches
[source]
Applies the patches defined in the configuration to the repositories.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
ReposCheckout
[source]
Ensures that the right revision of each repo is checked out.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
ReposFetch
[source]
Fetches repositories defined in the configuration
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
SetupDir
[source]
Creates the build directory.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
SetupEnviron
[source]
Sets up the kas environment.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
SetupHome
[source]
Sets up the home directory of kas.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
SetupReposStep
[source]
Single step of the checkout repos loop
-
execute
(ctx)[source]
TODO refactor protected-access
-
class
kas.libcmds.
SetupSSHAgent
[source]
Sets up the ssh agent configuration.
-
execute
(ctx)[source]
This method executes the command.
-
class
kas.libcmds.
WriteBBConfig
[source]
Writes bitbake configuration files into the build directory.
-
execute
(ctx)[source]
This method executes the command.
kas.build
Module
The build plugin for kas.
-
class
kas.build.
BuildCommand
(extra_bitbake_args)[source]
Implements the bitbake build step.
-
execute
(ctx)[source]
Executes the bitbake build command.
kas.shell
Module
This module contains a kas plugin that opens a shell within the kas
environment
-
class
kas.shell.
ShellCommand
(cmd)[source]
This class implements the command that starts a shell.
-
execute
(ctx)[source]
This method executes the command.
kas.config
Module
This module contains the implementation of the kas configuration.
-
class
kas.config.
Config
(filename, target, task=None)[source]
Implements the kas configuration based on config files.
-
find_missing_repos
()[source]
Returns repos that are in config but not on disk
Returns the bblayers.conf header
-
get_bitbake_targets
()[source]
Returns a list of bitbake targets
-
get_bitbake_task
()[source]
Returns the bitbake task
-
get_distro
()[source]
Returns the distro
-
get_environment
()[source]
Returns the configured environment variables from the configuration
file with possible overwritten values from the environment.
Returns the local.conf header
-
get_machine
()[source]
Returns the machine
-
get_multiconfig
()[source]
Returns the multiconfig array as bitbake string
-
get_repos
()[source]
Returns the list of repos.
kas.repos
Module
This module contains the Repo class.
-
class
kas.repos.
GitRepo
(url, path, refspec, layers, patches, disable_operations)[source]
Provides the git functionality for a Repo.
-
class
kas.repos.
MercurialRepo
(url, path, refspec, layers, patches, disable_operations)[source]
Provides the hg functionality for a Repo.
-
class
kas.repos.
Repo
(url, path, refspec, layers, patches, disable_operations)[source]
Represents a repository in the kas configuration.
-
static
factory
(name, repo_config, repo_defaults, repo_fallback_path)[source]
Returns a Repo instance depending on params.
-
static
get_root_path
(path, fallback=True)[source]
Checks if path is under version control and returns its root path.
-
class
kas.repos.
RepoImpl
(url, path, refspec, layers, patches, disable_operations)[source]
Provides a generic implementation for a Repo.
-
apply_patches_async
()[source]
Applies patches to a repository asynchronously.
-
checkout
()[source]
Checks out the correct revision of the repo.
-
fetch_async
()[source]
Starts asynchronous repository fetch.
kas.includehandler
Module
This module implements how includes of configuration files are handled in
kas.
-
exception
kas.includehandler.
IncludeException
[source]
Class for exceptions that appear in the include mechanism.
-
class
kas.includehandler.
IncludeHandler
(top_files)[source]
Implements a handler where every configuration file should
contain a dictionary as the base type with and ‘includes’
key containing a list of includes.
The includes can be specified in two ways: as a string
containing the relative path from the current file or as a
dictionary. The dictionary should have a ‘file’ key containing
the relative path to the include file and optionally a ‘repo’
key containing the key of the repository. If the ‘repo’ key is
missing the value of the ‘file’ key, it is treated the same as if
just a string was defined, meaning the path is relative to the
current config file. Otherwise it is interpreted relative to
the repository path.
The includes are read and merged from the deepest level upwards.
-
get_config
(repos=None)[source]
- Parameters:
- repos – A dictionary that maps repo names to directory paths
- Returns:
- (config, repos)
- config – A dictionary containing the configuration
repos – A list of missing repo names that are needed to create a complete configuration
-
exception
kas.includehandler.
LoadConfigException
(message, filename)[source]
Class for exceptions that appear while loading a configuration file.
-
kas.includehandler.
load_config
(filename)[source]
Load the configuration file and test if version is supported.