Skip to content

metanorma/packed-mn

Repository files navigation

Metanorma-CLI single executable binary

Build Status Build Status Build Status Build Status Build Status

Build Status

Purpose

Metanorma is a sophisticated document publishing tool for standardization bodies. It is written in Ruby with a number of dependencies.

User organizations of Metanorma run on multiple platforms, including Windows, Linux and macOS.

The challenge is how to ensure the distribution and installation of Metanorma works on the target system reliably.

Today, Metanorma offers:

  • Ruby gem

  • Linux setup script

  • macOS Homebrew package

  • Windows Chocolatey package

  • Docker container

However, all these packages require a long installation process with caveats, such as being prone to network failures and a network of dependencies to install.

This repo attempts to package dependencies using tebako and aibika, tools that package a Ruby interpreter with gems and dependencies into a RAM disk in Linux/MacOS and Windows environments.

Our goal is to make installation quick and dependable for our users.

Usage

Compile executable

For macOS / Linux:

$: make build

For Windows:

$: make -f Makefile.win build

This will clear build/ folder files and compile a new version from the metanorma_entry_point Ruby script.

Icon file for windows

Icon can be updated with make png2ico with use imagemagick under the hood

metanorma_entry_point

This script loads all dependencies in order to ruby packer correctly link all gems and their native extensions.