/cli-tools

Various utilities to simplify your builds at https://codemagic.io.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Codemagic CLI Tools

Command line utilities for managing mobile app builds, code signing, and deployment. These power mobile app builds at codemagic.io.

Installing

Install and update using pip:

pip3 install codemagic-cli-tools

CLI Usage

Package installs the following executables to your path:

Online documentation for all installed executables can be found under docs.

Alternatively, you could see the documentation by using --help option from command line:

<command> --help

to see general description and subcommands for the tool, or

<command> <subcommand> --help

to get detailed information of the subcommand.

For example:

$ keychain create --help
usage: keychain create [-h] [-s] [-v] [--no-color] [--log-stream {stderr,stdout}] [-pw PASSWORD] [-p PATH]

Create a macOS keychain, add it to the search list.

optional arguments:
  -h, --help            show this help message and exit

Options:
  -s, --silent          Disable log output for commands
  -v, --verbose         Enable verbose logging for commands
  --no-color            Do not use ANSI colors to format terminal output
  --log-stream {stderr,stdout}
                        Log output stream. [Default: stderr]

Optional arguments for command create:
  -pw PASSWORD, --password PASSWORD
                        Keychain password. Alternatively to entering PASSWORD in plaintext, it may also be specified using a "@env:" prefix followed by a environment variable name, or "@file:" prefix followed by a path to the file containing the value.
                        Example: "@env:<variable>" uses the value in the environment variable named "<variable>", and "@file:<file_path>" uses the value from file at "<file_path>". [Default: '']

Optional arguments for keychain:
  -p PATH, --path PATH  Keychain path. If not provided, the system default keychain will be used instead

Python API

In addition to the command line interface, the package provides a mirroring Python API too:

>>> from pathlib import Path
>>> from codemagic.tools import AppStoreConnect
>>> from codemagic.tools import GitChangelog
>>> from codemagic.tools import Keychain
>>> from codemagic.tools import UniversalApkGenerator
>>> from codemagic.tools import XcodeProject
>>> Keychain().get_default()
PosixPath('/Users/priit/Library/Keychains/login.keychain-db')
>>> keychain = Keychain(Path('/tmp/new.keychain')) 
>>> keychain.create()
PosixPath('/tmp/new.keychain')
>>> keychain.make_default()
>>> Keychain().get_default()                                                                                                                                                                                                                                        
PosixPath('/private/tmp/new.keychain')
...