Skip to main content

Utility to make working with mozconfigs easier

Project description

mozconfigwrapper

PyPI version CI

Mozconfigwrapper is a Python + shell tool to manager your mozconfigs. Mozconfigwrapper hides all your mozconfigs away in a configurable directory (defaults to ~/.mozconfigs) and allows you to easily create, switch, delete and edit them. Mozconfigs remain active across shell sessions.

Installation

Mozconfigwrapper is on PyPi as the mozconfigwrapper pacakge. The recommended method to install it is via uv:

uv tool install mozconfigwrapper

Then open your ~/.bashrc file (or equivalent) and add the line:

source $(which mozconfigwrapper.sh)

Finally run:

source ~/.bashrc

Usage

You can create, remove, switch, list and edit mozconfigs.

To build with (activate) a mozconfig named foo, run:

buildwith foo

To create a mozconfig named foo, run:

mkmozconfig foo

To delete a mozconfig named foo, run:

rmmozconfig foo

To see the currently active mozconfig, run:

mozconfig

To list all mozconfigs, run:

mozconfig -l

To edit the currently active mozconfig, run (the $EDITOR variable must be set):

mozconfig -e

Configuration

mozconfig location

By default mozconfigs are stored in the ~/.mozconfigs directory, but you can override this by setting the $BUILDWITH_HOME environment variable. e.g, add:

export BUILDWITH_HOME=~/my/custom/mozconfig/path

to your ~/.bashrc file (or equivalent).

buildwith command

When running the buildwith command, export MOZCONFIG=<path to mozconfig> is run by default. You can use any other command by overriding the BUILDWITH_COMMAND environment variable. For example, if you put this in your ~/.bashrc file (or equivalent):

export BUILDWITH_COMMAND="export MOZCONFIG=#1 && launchctl setenv MOZCONFIG #1"

buildwith will also set the MOZCONFIG environment variable in launchctl (useful when running Android Studio). All occurences of #1 will be replaced by the path to the mozconfig file.

prompt prefix

Similar to Python virtualenvs, you can display the active mozconfig name as a prefix in your shell prompt. This prefix only appears when you are inside a gecko repository. To enable this feature, add to your ~/.bashrc file (or equivalent):

export BUILDWITH_SHOW_PROMPT=1

The default format is (mozconfig_name) but you can customize it with:

export BUILDWITH_PROMPT_FORMAT="[%s] "

The %s will be replaced with the mozconfig name. For example, if you activate a config named "debug" while inside a gecko repository, your prompt will show (debug) or [debug] depending on your format setting.

The prompt automatically appears when you cd into a gecko repository and disappears when you leave it. Gecko repositories are detected by the presence of mach or moz.configure files.

mozconfig template

When you make a new mozconfig, it will be populated with some basic build commands and the name of the mozconfig will be appended to the end of the OBJDIR instruction. You can modify what gets populated by default by editing the ~/.mozconfigs/.template file. For example, if I wanted my default configuration to store object directories in a folder called objdirs and enable debugging and tests, I'd edit the ~/.mozconfigs/.template file to look like:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdirs/
ac_add_options --enable-application=browser
ac_add_options --enable-debug
ac_add_options --enable-tests

Now if I ran the command 'mkmozconfig foo', foo would be populated with the above and have the word 'foo' appended to the first line.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mozconfigwrapper-1.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mozconfigwrapper-1.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file mozconfigwrapper-1.1.0.tar.gz.

File metadata

  • Download URL: mozconfigwrapper-1.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mozconfigwrapper-1.1.0.tar.gz
Algorithm Hash digest
SHA256 3ffa481b1cfc792017a3e04407c75e37c221286b26e37c516b90c49f9c04083b
MD5 961d9eeabdb04c28eff9b95392aa1b0e
BLAKE2b-256 bc093d82a167a819166e83eaf0251dcf3a4f594649c63beed3d1068deb598b26

See more details on using hashes here.

Provenance

The following attestation bundles were made for mozconfigwrapper-1.1.0.tar.gz:

Publisher: pypi-publish.yml on ahal/mozconfigwrapper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mozconfigwrapper-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mozconfigwrapper-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3719ba597f3319018e5e787078c1d06c242635ffaceba504c7d49aed5466b52e
MD5 ccef9d9f6164c0f2434fe740f2732398
BLAKE2b-256 9bd3571a9f192758b7432bb5ef839f5ce5f6920a1be4f5efbb5331468292ae0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mozconfigwrapper-1.1.0-py3-none-any.whl:

Publisher: pypi-publish.yml on ahal/mozconfigwrapper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page