# baligo **Repository Path**: k8s-devops/baligo ## Basic Information - **Project Name**: baligo - **Description**: Gitee 官方使用的极简 Golang 构建打包工具 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2024-04-10 - **Last Updated**: 2024-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bali - Minimalist Golang build and packaging tool [![Master Branch Status](https://github.com/balibuild/bali/workflows/CI/badge.svg)](https://github.com/balibuild/bali/actions) [简体中文](./README.zh-CN.md) Bali is a *minimal Golang build and packaging tool* developed using Golang. [Bali(old)](https://github.com/fcharlie/bali) was originally written in PowerShell and used to solve packaging and configuration issues during the project build process. [Bali(old)](https://github.com/fcharlie/bali) can fill information such as time, git commit, etc. into the built binary file at build time, which is of some use when tracing application defects. However, Bali developed based on PowerShell does not support the creation of `STGZ` installation package. The `STGZ` installation package essentially merges the `Shell Script` header with `tar.gz` and distributes it. When the user installs, the `Shell Script` calls the decompression command to decompress to complete the installation. In the shell script, you can also set up a script such as `post_install` to perform related operations after decompression. `STGZ` is small and powerful. In the past two years of development, most of the Linux platform projects that I have developed have realized the function of creating STGZ installation packages. In fact, Bali can fully achieve this function, considering that Golang has built-in `archive/tar`, `archive/zip`, `compress/gzip`. In fact, if you use Golang to re-implement Bali, you will get greater benefits. This is [Baligo](https://github.com/fcharlie/baligo) (Gitee: [Baligo](https://gitee.com/ipvb/baligo)). But I still think that Baligo still lacks, such as the Windows platform does not support embedded `icons`, `version information`, `manifest files`, so this is where the new **Bali** was born. ## Feature Bali has some functions that I think are useful: + Build parameters support derivation of environment variables + Package, create compressed package, create zip when target is Windows, and create tar.gz when target is other. + The Windows platform supports embedded version information, icons, and application manifest. + UNIX platform supports STGZ packaging Bali's command line help information is as follows: ```shell Bali - Minimalist Golang build and packaging tool usage: ./build/bin/bali