Compare commits

..
4 changed files with 40 additions and 10 deletions
+2 -3
View File
@@ -7,7 +7,7 @@ on:
workflow_dispatch:
inputs:
tag:
description: 'Tag to release (e.g. v0.1.0).'
description: 'Tag to release (e.g. v0.1.0). The tag must already exist.'
required: true
type: string
@@ -22,7 +22,7 @@ jobs:
id: ref
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
echo "ref=${{ github.ref }}" >> "$GITHUB_OUTPUT"
echo "ref=${{ inputs.tag }}" >> "$GITHUB_OUTPUT"
echo "tag=${{ inputs.tag }}" >> "$GITHUB_OUTPUT"
else
echo "ref=${{ github.ref }}" >> "$GITHUB_OUTPUT"
@@ -56,7 +56,6 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ steps.ref.outputs.tag }}
name: ${{ steps.ref.outputs.tag }}
target_commitish: ${{ github.sha }}
generate_release_notes: true
fail_on_unmatched_files: true
files: |
+28 -7
View File
@@ -8,19 +8,20 @@ Linux).
## Install
Download the native binary for your platform from a release, or build from
source:
Download the pre-built binary for your platform and make it executable.
Using **curl**:
```shell
git clone https://github.com/JMR-dev/bootstrap_dev_env.git
cd bootstrap_dev_env
make build # builds ./bootstrap_environment for the host
curl -Lo bootstrap_environment "https://github.com/JMR-dev/bootstrap_dev_env/releases/latest/download/bootstrap_environment-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/; s/arm64/arm64/')"
chmod +x bootstrap_environment
```
To produce native binaries for all four supported targets at once:
Using **wget**:
```shell
make build-all # writes dist/bootstrap_environment-{linux,darwin}-{amd64,arm64}
wget -O bootstrap_environment "https://github.com/JMR-dev/bootstrap_dev_env/releases/latest/download/bootstrap_environment-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/; s/arm64/arm64/')"
chmod +x bootstrap_environment
```
## Usage
@@ -42,3 +43,23 @@ Flags:
that backs the `firecracker()` zsh wrapper.
Package lists live in `packages.go`. Edit and rebuild.
## Build from Source
If you prefer to build the tool yourself, or if you are making custom modifications:
1. Clone the repository:
```shell
git clone https://github.com/JMR-dev/bootstrap_dev_env.git
cd bootstrap_dev_env
```
2. Build for the current host platform:
```shell
make build # builds ./bootstrap_environment for the host
```
To cross-compile binaries for all supported targets at once:
```shell
make build-all # writes dist/bootstrap_environment-{linux,darwin}-{amd64,arm64}
```
+5
View File
@@ -0,0 +1,5 @@
# Future State
- which guard/check at end of binary
- unit test suite
- early program end if nothing found to do
+5
View File
@@ -199,6 +199,11 @@ func resolveSystemPkgs(names []string) ([]string, []string) {
// isSystemPkgInstalled queries the host package manager.
func isSystemPkgInstalled(pkg string) bool {
// If 'which $pkg' returns a value, the package's command is available, so skip it.
if r, ok := probe([]string{"which", pkg}, 0); ok && r.ExitCode == 0 {
return true
}
switch pkgMgr {
case "dnf":
r, ok := probe([]string{"rpm", "-q", pkg}, 0)