/BOMulus

📑 BOMulus is a Go application with a GTK-based GUI that allows users to compare and analyze BOM files. It provides version control functionality to identify added, deleted, and updated lines between two BOMs.

Primary LanguageGoMIT LicenseMIT

BOMulus

BOMulus

BOMulus is a Go application with a GTK-based GUI that allows users to compare and analyze Bill of Materials (BOM) files. It provides version control functionality to identify added, deleted, and updated lines between two BOMs.

Features

  • 🖱️ Drag and drop interface for loading two BOM files
  • 📊 Simple version control to compare BOMs
  • ➕ Identifies INSERT, DELETE, and UPDATE changes
  • 📋 Tabular output with rearrangeable columns for better visibility
  • 🎨 Color-coded schema for easy change identification

📦 Installing BOMulus

To install BOMulus, download the latest release from the GitHub Releases page.

🔧 Development

📖 Prerequisites

  • Go 1.8 or newer
  • GTK 3.6-3.22
  • GLib 2.36-2.40
  • Cairo 1.10 or 1.12

🔌 Installing Dependencies

Linux

Follow the instructions here to install GTK and other dependencies.

macOS

Follow the instructions here to install GTK and other dependencies.

Windows

Follow the instructions here to install GTK and other dependencies.

⚙️ Setting up the Development Environment

  1. Install Go and GTK dependencies as mentioned in the Installation section.

  2. Clone the repository:

git clone https://github.com/L-A-Marchetti/BOMulus.git
cd BOMulus
  1. Install the required Gotk3 (GTK bindings for Golang) Go package:
go get github.com/gotk3/gotk3@v0.6.5-0.20240618185848-ff349ae13f56

🔨 Building

Linux

Use the provided Makefile to build the project:

make

This will create the BOMulus binary in the build directory and run it. You can also use build, run or clean after make.

Windows

You can use the win-build.ps1 script to automate the build and the dependencies copying:

.\win-build.ps1 -version "<version>"

You won't be able to launch the script if Execution_Policies are not set correctly:

Get-ExecutionPolicy

if it's Restricted:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Build the Windows installer

You can build easily the Windows installer by using the .iss script win-installer-setup.iss or you can simply follow these steps:

Set the version as an env variable:

$env:APP_VERSION = "<version>"

Then execute the installer compilation (you'll probably need to add iscc to your system env path):

iscc win-installer-setup.iss

🚀 Running

Linux

To run the application:

make run

Or directly:

./BOMulus

Windows

You can double click or :

start BOMulus.exe

🌸 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.