Difference between revisions of "ABF Console Client"

From Rosalab Wiki
Jump to: navigation, search
Line 8: Line 8:
 
If you want to get a help for some command - you've got two options: '''abf help <command>''' and '''abf <command> -h/--help'''  
 
If you want to get a help for some command - you've got two options: '''abf help <command>''' and '''abf <command> -h/--help'''  
  
 +
Options:
 +
 +
''abf hel <command_name>''
 +
* '''<command_name>''': A command to get help for.
 
==alias==
 
==alias==
 
Manage aliases for console client. With aliases you can make your frequently used commands shorter.
 
Manage aliases for console client. With aliases you can make your frequently used commands shorter.
  
For example, you are going to work only with packages for rosa2012., you have to checkout to this branch after every "abf get" (or use -b rosa2012.1). But you can just add an alias like "g: get -b rosa2012.1" and after that "abf g" will do it automatically.
+
For example, you are going to work only with packages for rosa2012.1, you have to checkout to this branch after every "abf get" (or use -b rosa2012.1). But you can just add an alias like "g: get -b rosa2012.1" and after that "abf g" will do it automatically.
  
 
Moreover, the alias name can be not only the first abf argument. For example, you can create another useful alias like "pack: rosa2012.1 build_branch -p" and run "abf copy pack" to copy contents of rosa2012.1 branch to build_branch and compress it.
 
Moreover, the alias name can be not only the first abf argument. For example, you can create another useful alias like "pack: rosa2012.1 build_branch -p" and run "abf copy pack" to copy contents of rosa2012.1 branch to build_branch and compress it.
 +
 +
Options:
 +
 +
''abf alias <action> param1 [param2] [...]''
 +
* '''<action>''': One of actions: list, add, remove.
  
 
==== list ====
 
==== list ====
Line 36: Line 45:
 
Options:
 
Options:
  
* '''-b <branch_name>''': specify a branch to check out inside a cloned git pepository.
+
''abf get <project> [--branch <branch_name>]''
 +
* '''<project>''': a project to clone.
 +
* '''-b/--branch <branch_name>''': specify a branch to check out inside a cloned git pepository.
  
 
Notes:
 
Notes:
Line 46: Line 57:
  
 
Options:  
 
Options:  
 +
 +
''abf put [--message <message>] [--minimal-file-size <size>] [--do-not-remove-files]''
 
* '''-m/--message <message>''':  With this option specified, "git add --all", "git commit -m <message>" and "git push" will be executed.
 
* '''-m/--message <message>''':  With this option specified, "git add --all", "git commit -m <message>" and "git push" will be executed.
 
* '''-s/--minimal-file-size <size>''': The minimal file size to upload to File-Store. Smaller files will not be processed. Default is 0B.
 
* '''-s/--minimal-file-size <size>''': The minimal file size to upload to File-Store. Smaller files will not be processed. Default is 0B.
Line 56: Line 69:
  
 
Options:
 
Options:
 +
''abf store <path>''
  
 
* '''<path>''': A path to file to upload.
 
* '''<path>''': A path to file to upload.
Line 65: Line 79:
 
Options:
 
Options:
  
 +
''abf fetch [--only <file_name>]''
 
* '''-o/--only <file_name>''': Limit the list of downloaded files to this file name(s). This option can be specified more than once.
 
* '''-o/--only <file_name>''': Limit the list of downloaded files to this file name(s). This option can be specified more than once.
  
Line 72: Line 87:
 
Options:
 
Options:
  
 +
''abf show <target> [--project <project_name>]''
 
* '''<target>''': What has to be displayed. Available choices: build-repos, build-platforms, save-to-repos, save-to-platforms
 
* '''<target>''': What has to be displayed. Available choices: build-repos, build-platforms, save-to-repos, save-to-platforms
 
* '''-p/--project <project_name>''': Project to show information about. If you are in a git repository, the information for <project_name> will be displayed instead.
 
* '''-p/--project <project_name>''': Project to show information about. If you are in a git repository, the information for <project_name> will be displayed instead.
Line 84: Line 100:
  
 
==locate==
 
==locate==
Tool can remember the project location and use it for some reasons (abfcd, etc.).
+
 
 +
Command to maintain a database of local projects.
 +
 
 +
Console client tends to maintain a database of local projects: while any interaction with your local git repository via abf-console-client, it stores the path to this repository. After that you can call '''abfcd [<project_group>/]<project_name>''' (omit group_name to use your default) to change your current working directory to the project's path (if it had been stored before). If you just want to get a project path without changing directory, use '''abf locate -p <project>'''.
 +
 
 +
You can also add projects to this database by manually. To add only one project call '''abf locate update -d /path/to/project'''. To scan directory recursively and add all the found projects, call '''abf locale update-recursive -d /path/to/directory'''.
 +
 
 +
 
 +
Options:
 +
 
 +
''abf locate [<action>] [--project <project>] [--directory <directory>]''
 +
* '''<action>''': one of {update, update-recursive}. '''update''' will update
 +
* '''-p/--project <project>''': Project to show information for (if needed). Format: "[group/]name". If no group specified, your default group  will be used.
 +
* '''-d/--directory <directory>''': Directory to update locations for. It should be a git repository for "update" and any directory for "update-recursive". If not specified - the current directory will be used.
 +
 
 +
 
 
==build==
 
==build==
 
Initiate a build task on ABF.
 
Initiate a build task on ABF.

Revision as of 10:49, 12 April 2013

Intro

Command List

help

If you want to get a help for some command - you've got two options: abf help <command> and abf <command> -h/--help

Options:

abf hel <command_name>

  • <command_name>: A command to get help for.

alias

Manage aliases for console client. With aliases you can make your frequently used commands shorter.

For example, you are going to work only with packages for rosa2012.1, you have to checkout to this branch after every "abf get" (or use -b rosa2012.1). But you can just add an alias like "g: get -b rosa2012.1" and after that "abf g" will do it automatically.

Moreover, the alias name can be not only the first abf argument. For example, you can create another useful alias like "pack: rosa2012.1 build_branch -p" and run "abf copy pack" to copy contents of rosa2012.1 branch to build_branch and compress it.

Options:

abf alias <action> param1 [param2] [...]

  • <action>: One of actions: list, add, remove.

list

List all the currently available aliases. By default this list looks like

        b: build
       sp: search projects
       su: search users
       st: status
        s: store
      spl: search platforms
       sg: search groups

add

Add a new alias. the first argument is an alias name, all the arguments after that are alias target. For example, abf alias add sg search groups will срфтпу every call of "abf sg rosa" to "abf search groups rosa".

remove

Remove an alias. The only option is an alias name.

get

Clone a remote git repository by its group and name. For example, abf get import/gcc will clone a project gcc from group import.

Options:

abf get <project> [--branch <branch_name>]

  • <project>: a project to clone.
  • -b/--branch <branch_name>: specify a branch to check out inside a cloned git pepository.

Notes:

You can omit a group name, your default group (given from configs) will be used.

put

Upload binary files to File-Store and update (or create) .abf.yml file. Can also commit and push changes.

Options:

abf put [--message <message>] [--minimal-file-size <size>] [--do-not-remove-files]

  • -m/--message <message>: With this option specified, "git add --all", "git commit -m <message>" and "git push" will be executed.
  • -s/--minimal-file-size <size>: The minimal file size to upload to File-Store. Smaller files will not be processed. Default is 0B.
  • -n/--do-not-remove-files: By default files are being removed on uploading. Override this behavior.

store

Upload a given file to File-Store. Prints a sha1 hash or error message (with non-zero return code).

If the file with same hash already presents on File-Store, it will not be reuploaded. In any case, file hash will be printed.

Options: abf store <path>

  • <path>: A path to file to upload.


fetch

Download all the files listed in .abf.yml from File-Store to local directory.

Options:

abf fetch [--only <file_name>]

  • -o/--only <file_name>: Limit the list of downloaded files to this file name(s). This option can be specified more than once.

show

Show some general information about the project. Bash autocomplete uses it. If you are in a git repository directory, command will show information about this project (unless -p/--project specified).

Options:

abf show <target> [--project <project_name>]

  • <target>: What has to be displayed. Available choices: build-repos, build-platforms, save-to-repos, save-to-platforms
  • -p/--project <project_name>: Project to show information about. If you are in a git repository, the information for <project_name> will be displayed instead.

Notes:

Repository name includes its platform name. Example of repository name: "rosa2012.1/main" - repository "main" of "rosa2012.1" platform.

Build repository - repository that you can connect to a building chroot.

Target (or save-to) repository - when a build task completed successfully, packages can be published to this repository.

locate

Command to maintain a database of local projects.

Console client tends to maintain a database of local projects: while any interaction with your local git repository via abf-console-client, it stores the path to this repository. After that you can call abfcd [<project_group>/]<project_name> (omit group_name to use your default) to change your current working directory to the project's path (if it had been stored before). If you just want to get a project path without changing directory, use abf locate -p <project>.

You can also add projects to this database by manually. To add only one project call abf locate update -d /path/to/project. To scan directory recursively and add all the found projects, call abf locale update-recursive -d /path/to/directory.


Options:

abf locate [<action>] [--project <project>] [--directory <directory>]

  • <action>: one of {update, update-recursive}. update will update
  • -p/--project <project>: Project to show information for (if needed). Format: "[group/]name". If no group specified, your default group will be used.
  • -d/--directory <directory>: Directory to update locations for. It should be a git repository for "update" and any directory for "update-recursive". If not specified - the current directory will be used.


build

Initiate a build task on ABF.

mock-urpm

Build a project locally using mock-urpm.

rpmbuild

Build a project locally using rpmbuild.

publish

Publish the task that have already been built.

copy

status

clean

Analyze spec file and show missing and unnecessary files from the current git repository directory.

search

test