An open API service indexing awesome lists of open source software.

https://github.com/martabal/ff-diff

ff-diff is a simple script to compare changes in user.js preference files between two versions of Firefox.
https://github.com/martabal/ff-diff

Last synced: 24 days ago
JSON representation

ff-diff is a simple script to compare changes in user.js preference files between two versions of Firefox.

Awesome Lists containing this project

README

        

# ff-diff

`ff-diff` is a simple node script to compare changes in user.js preference files between two versions of Firefox. You don't need to mess with your firefox instance.

Features:

- Compares user.js files from two specified Firefox versions
- Automatically downloads official Firefox binaries
- Highlights differences without requiring a local Firefox installation

Requirements:

- Internet connection (for downloading Firefox binaries)
- node >= 22 and npm
- tar

## Installation (NPM)

```bash
npm i -g ff-diff
```

## Usage

```bash
$ ff-diff
Usage:
ff-diff clean [--keep ,] [--keep-archives] [--keep-sources]
ff-diff [--clean-archives] [--clean-sources] [--do-not-print-diffs-in-console] [--save-diffs-in-file] [--compare-userjs ]
```

Example:

```bash
ff-diff 137.0 138.0
```

## Develop

Clone this repository:

```bash
git clone https://github.com/martabal/ff-diff.git
cd ff-diff
npm ci
```

Run the comparison script:

```bash
npm run ff-diff
```

for example:

```bash
npm run ff-diff 137.0 138.0
```

If you use a custom `user.js`. You can check if some of the keys are removed/changed with the argument `--compare-userjs `.

## Clean

The Firefox sources will be downloaded into the `dist/` directory. By default, the script keeps the archives and the sources extracted from the archives. If you want to remove them, you can execute the script with the `--remove-archives` `--remove-sources` arguments. But you can also use the script `npm run clean` to delete all archives and sources in `dist/`. If you want to use specific version you can use:

```bash
npm run ff-diff clean -- --keep ,
```

If you want to only keep archives you can use `npm run clean -- --keep , --keep-archives` or `npm run clean -- --keep , --keep-sources` if you want to keep the sources

> [!NOTE]
> The script may take some time to run depending on your connection speed.

Example of a generated diffs:

![Image of the example](https://raw.githubusercontent.com/martabal/ff-diff/refs/heads/main/images/diffs-example.png)