From 9ef5f361a2d2c5c7382fb926e15bf1f38d35cf08 Mon Sep 17 00:00:00 2001 From: Fred Dushin Date: Wed, 11 Oct 2023 22:07:32 -0400 Subject: [PATCH] Add relx stanzas to create a standalone release of the packbeam utility. Signed-off-by: Fred Dushin --- ChangeLog | 4 ++++ Makefile | 6 ++++- rebar.config | 22 +++++++++++++++++-- ...ckbeam.app.src => atomvm_packbeam.app.src} | 2 +- test/prop_packbeam.erl | 2 +- test/test_packbeam.erl | 2 +- 6 files changed, 32 insertions(+), 6 deletions(-) rename src/{packbeam.app.src => atomvm_packbeam.app.src} (98%) diff --git a/ChangeLog b/ChangeLog index 43775a2..c3807bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.6.2] (Unreleased) + +- Add `relx` stanzas to create a standalone release of the `packbeam` utility + ## [0.6.1] - Added `extract` sub-command diff --git a/Makefile b/Makefile index b301be8..718e8f2 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ ## All rights reserved. ## -all: compile escript edoc etest +all: compile escript edoc etest release compile: rebar3 compile @@ -19,6 +19,10 @@ etest: rebar3 proper --cover rebar3 cover --verbose +release: + rebar3 release + rebar3 tar + clean: rm -rf _build diff --git a/rebar.config b/rebar.config index 59effef..5e3362d 100644 --- a/rebar.config +++ b/rebar.config @@ -5,8 +5,8 @@ {erl_opts, [no_debug_info]}. {deps, []}. -{escript_incl_apps, [packbeam]}. -{escript_main_app, packbeam}. +{escript_incl_apps, [atomvm_packbeam]}. +{escript_main_app, atomvm_packbeam}. {escript_name, packbeam}. {escript_emu_args, "%%! +sbtu +A1\n"}. @@ -28,3 +28,21 @@ ]} ]} ]}. + +{relx, [ + {release, {atomvm_packbeam, "0.6.1"}, [ + kernel, + stdlib, + atomvm_packbeam + ]}, + {mode, prod}, + {generate_start_script, false}, + {overlay, [ + {copy, "src/packbeam.erl", "bin/packbeam.escript"} + ]} +]}. + +%% copy and rename escript next to `packbeam.escript` (See escript man page) +{post_hooks, [ + {release, "cp ${REBAR_BUILD_DIR}/rel/atomvm_packbeam/erts-${ERLANG_ERTS_VER}/bin/escript ${REBAR_BUILD_DIR}/rel/atomvm_packbeam/bin/packbeam"} +]}. diff --git a/src/packbeam.app.src b/src/atomvm_packbeam.app.src similarity index 98% rename from src/packbeam.app.src rename to src/atomvm_packbeam.app.src index e06c057..df75cbd 100644 --- a/src/packbeam.app.src +++ b/src/atomvm_packbeam.app.src @@ -16,7 +16,7 @@ %% { application, - packbeam, + atomvm_packbeam, [ {description, "An escript and library to manipulate (create, list, delete) AtomVM PackBeam files"}, diff --git a/test/prop_packbeam.erl b/test/prop_packbeam.erl index 7a910bf..83af604 100644 --- a/test/prop_packbeam.erl +++ b/test/prop_packbeam.erl @@ -18,7 +18,7 @@ -include_lib("proper/include/proper.hrl"). -define(BUILD_DIR, "_build/"). --define(TEST_BEAM_DIR, "_build/test/lib/packbeam/test/"). +-define(TEST_BEAM_DIR, "_build/test/lib/atomvm_packbeam/test/"). %% diff --git a/test/test_packbeam.erl b/test/test_packbeam.erl index cdee645..104149c 100644 --- a/test/test_packbeam.erl +++ b/test/test_packbeam.erl @@ -20,7 +20,7 @@ -include_lib("eunit/include/eunit.hrl"). -define(BUILD_DIR, "_build/"). --define(TEST_BEAM_DIR, "_build/test/lib/packbeam/test/"). +-define(TEST_BEAM_DIR, "_build/test/lib/atomvm_packbeam/test/"). packbeam_create_simple_test() -> AVMFile = dest_dir("packbeam_create_simple_test.avm"),