Skip to content
/ goxz Public

Just do cross building and archiving go tools conventionally

License

Notifications You must be signed in to change notification settings

Songmu/goxz

Folders and files

NameName
Last commit message
Last commit date
Aug 17, 2022
Nov 19, 2019
Aug 18, 2022
Apr 5, 2021
Aug 18, 2022
Dec 26, 2021
Dec 24, 2017
Aug 17, 2022
Oct 9, 2023
Jul 6, 2024
Dec 26, 2021
Jul 6, 2024
Aug 17, 2022
Aug 17, 2022
Aug 17, 2022
Jul 6, 2024
Jul 6, 2024
Dec 24, 2017
Aug 18, 2022

Repository files navigation

goxz

Build Status Coverage Status MIT License GoDev

GO + X (crossbuild) + Z (zip)

Description

Just do cross building and archiving go tools conventionally

Installation

% go install github.com/Songmu/goxz/cmd/goxz@latest

Built binaries are available on gihub releases. https://github.com/Songmu/goxz/releases

You can also install goxz with aqua.

% aqua g -i Songmu/goxz

Concept

  • Simple and Lightweight
  • Provides goxc subset
    • only provides cross building and archiving
  • No older Go support
  • No complicated configuration and behaivors
    • convention over configuration

Synopsis

# in your repository
% goxz -pv 0.0.1 -os=linux,darwin -arch=amd64 ./cmd/mytool [...]

# archives are built into `./goxz` directory by default (configurable by `-d` option)
%  tree ./goxz
goxz/
├── yourapp_0.0.1_darwin_amd64.zip
└── ...

Included resources

following files are included to archives automatically.

  • LICENSE*
  • README*
  • INSTALL*
  • CREDIT*
  • CHANGELOG*

You can specify additional resources by using -include option.

Archive naming specification

{{Package}}_{{Version}}_{{OS}}_{{Arch}}.{{Ext}} or {{Package}}_{{OS}}_{{Arch}}.{{Ext}}

  • {{Package}}
    • directory name of the project by default
    • you can specify it with -n option
  • {{Version}}
    • When the version is specified by -pv option, that is contained in archive name
  • {{Ext}}
    • .zip is by default on "windows" and "darwin", .tar.gz is by default on other os.
    • use -z option to use zip always to compress.
  • No file naming notations are available yet
    • ref. goxc: {{.ExeName}}_{{.Version}}_{{.Os}}_{{.Arch}}{{.Ext}}

Options

  • -d destination directory (./goxz by default)
  • -n application name. by default the directory name is used.
  • -os linux,darwin and windows by default
  • -arch amd64,arm64 by default
  • -pv for speicifing version (optional)
  • -o output filename
    • not available with multiple package building
  • -z to use zip always to compless
    • by default, zip is used on "windows and "darwin", tar.gz is used on other OS
  • -include Include additional resources in archives
  • -build-ldflags / -build-tags

Author

Songmu