da (1) - Linux Manuals

da: setup development environment and create basic projects in various


da - setup development environment and create basic projects in various languages


da [--debug] [--no-cache] [ ASSISTANT_TYPE ] [ OPTIONS ] [[ SUBASSISTANT ] [OPTIONS] ...]

da [--debug] [--no-cache] [ ACTION ] [ OPTIONS ]


da is the main command of DevAssistant. It is responsible for dispatching commandline calls to assistants or actions. It accepts some optional flags:

makes DevAssistant log lots of debugging information
makes DevAssistant read all individual assistants and completely ignore cache


DevAssistant can help you with various tasks during development. The tasks are carried out by so called "assistants" - there are four types of assistants:

create - create new projects, install dependencies and setup environment
modify - modify previously created projects (e.g. import them to Eclipse)
prepare - prepare development environment for an upstream project
task - carry out a custom task not related to a specific project

You can shorten "create" to "crt", "modify" to "mod" and "prepare" to "prep".

Each assistant type can have many associated assistants (e.g. python, ruby) and each assistant can have many associated subassistants (e.g. django, flask). You can display these (and also other options) by running e.g. da crt -h and da crt python -h. Once you select the desired assistant (and its subassistants), just run it, e.g. da crt python django -n newproject.

The list of assistants and their functionality may vary depending on your installation - just run help to see currently available assistants.


DevAssistant is designed to also provide custom functionality through so-called actions. Currently, these contain:

help - display verbose help.
version - display devassistant version.

Again, to show options, just use -h with the action, e.g. da version -h.


There are some commonly used options shared among many assistants. Their usual meaning is explained below:
-h --help
print help for selected assistant.
-n --name
name of the project (relative or absolute path).
-e --eclipse
import project into eclipse environment. Uses ~/workspace workspace by default, can be overriden by specifying another path.
-g --github <username>
create a GitHub repo and push the initial sources there. Uses current system username as GitHub username, unless specified otherwise. The GitHub projectname is taken from the name parameter.
-b --build
generate a SPEC file, SRPM and mock-build RPM.
-v --vim
install vim settings specific for this language (backs up your original vim settings)


A colon-separated list of directories in which to search for assistants. Searched in before the standard paths. If multiple assistants with the same name are found only the first of them will be used.