Compare commits

...

11 commits
v1.2.0 ... main

Author SHA1 Message Date
Greg T. Wallace
c9ab6ae050
Update README.md 2025-05-31 22:59:50 -04:00
Greg T. Wallace
86feabd939 v1.2.2 2025-04-22 18:27:55 -04:00
Greg T. Wallace
124c06d8be build: compile linux/arm64 in native runner 2025-04-22 18:27:55 -04:00
Greg T. Wallace
72f3f42baa build: add darwin arm64 & amd64 2025-04-22 18:27:54 -04:00
Greg T. Wallace
3bb6b2a3c1 dep: update all 2025-04-22 18:27:54 -04:00
Greg T. Wallace
1392529a3f dep: go 1.24.2 2025-04-22 18:27:54 -04:00
Greg T. Wallace
e87a3100d2 v1.2.1 2025-03-17 22:06:52 -04:00
Greg T. Wallace
c67001f0e4 dep: update all 2025-03-17 22:06:46 -04:00
Greg T. Wallace
ad8c4e88a9 dep: go 1.24.1 2025-03-17 22:05:29 -04:00
FingerlessGloves
096b50187a
Fix GetTime for GMT users ()
UPS failes to use the required `+` when in the GMT timezone. Account for that.

---------

Co-authored-by: Greg T. Wallace <greg@gregtwallace.com>
2025-03-17 22:01:37 -04:00
Greg T. Wallace
c5bb8edbec update screenshot 2025-01-28 21:04:06 -05:00
9 changed files with 233 additions and 19 deletions

View file

@ -8,7 +8,7 @@ on:
env: env:
GITHUB_REF: ${{ github.ref }} GITHUB_REF: ${{ github.ref }}
GO_VERSION: '1.23.5' GO_VERSION: '1.24.2'
jobs: jobs:
build-common: build-common:
@ -40,8 +40,10 @@ jobs:
name: CHANGELOG.md name: CHANGELOG.md
path: ./CHANGELOG.md path: ./CHANGELOG.md
###
build-linux-arm64: build-linux-arm64:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04-arm
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -50,12 +52,6 @@ jobs:
ref: ${{ env.GITHUB_REF }} ref: ${{ env.GITHUB_REF }}
fetch-depth: 0 fetch-depth: 0
- name: Update apt
run: sudo apt update
- name: Install cross-compiler for linux/arm64
run: sudo apt-get -y install gcc-aarch64-linux-gnu
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v5 uses: actions/setup-go@v5
with: with:
@ -66,7 +62,6 @@ jobs:
env: env:
GOOS: linux GOOS: linux
GOARCH: arm64 GOARCH: arm64
CC: aarch64-linux-gnu-gcc
CGO_ENABLED: 0 CGO_ENABLED: 0
- name: Save Compiled Binary - name: Save Compiled Binary
@ -171,6 +166,90 @@ jobs:
name: apc-p15-install-windows-amd64 name: apc-p15-install-windows-amd64
path: ./apc-p15-install.exe path: ./apc-p15-install.exe
build-darwin-arm64:
runs-on: macos-15
steps:
- name: Checkout Backend Repo
uses: actions/checkout@v4
with:
repository: gregtwallace/apc-p15-tool
ref: ${{ env.GITHUB_REF }}
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '${{ env.GO_VERSION }}'
- name: Build Tool
run: go build -o ./apc-p15-tool -v ./cmd/tool
env:
GOOS: darwin
GOARCH: arm64
CGO_ENABLED: 0
- name: Save Compiled Binary
uses: actions/upload-artifact@v4
with:
name: apc-p15-tool-darwin-arm64
path: ./apc-p15-tool
- name: Build Install Only
run: go build -o ./apc-p15-install -v ./cmd/install_only
env:
GOOS: darwin
GOARCH: arm64
CGO_ENABLED: 0
- name: Save Compiled Binary
uses: actions/upload-artifact@v4
with:
name: apc-p15-install-darwin-arm64
path: ./apc-p15-install
build-darwin-amd64:
runs-on: macos-13
steps:
- name: Checkout Backend Repo
uses: actions/checkout@v4
with:
repository: gregtwallace/apc-p15-tool
ref: ${{ env.GITHUB_REF }}
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '${{ env.GO_VERSION }}'
- name: Build Tool
run: go build -o ./apc-p15-tool -v ./cmd/tool
env:
GOOS: darwin
GOARCH: amd64
CGO_ENABLED: 0
- name: Save Compiled Binary
uses: actions/upload-artifact@v4
with:
name: apc-p15-tool-darwin-amd64
path: ./apc-p15-tool
- name: Build Install Only
run: go build -o ./apc-p15-install -v ./cmd/install_only
env:
GOOS: darwin
GOARCH: amd64
CGO_ENABLED: 0
- name: Save Compiled Binary
uses: actions/upload-artifact@v4
with:
name: apc-p15-install-darwin-amd64
path: ./apc-p15-install
###
release-file-linux-arm64: release-file-linux-arm64:
needs: [build-common, build-linux-arm64] needs: [build-common, build-linux-arm64]
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
@ -302,3 +381,91 @@ jobs:
with: with:
name: apc-p15-tool_windows_amd64 name: apc-p15-tool_windows_amd64
path: ./release path: ./release
release-file-darwin-arm64:
needs: [build-common, build-darwin-arm64]
runs-on: ubuntu-24.04
steps:
- name: Make release directory
run: mkdir ./release
- name: Download Tool Binary
uses: actions/download-artifact@v4
with:
name: apc-p15-tool-darwin-arm64
path: ./release
- name: Download Install Binary
uses: actions/download-artifact@v4
with:
name: apc-p15-install-darwin-arm64
path: ./release
- name: Download README
uses: actions/download-artifact@v4
with:
name: README.md
path: ./release
- name: Download LICENSE
uses: actions/download-artifact@v4
with:
name: LICENSE.md
path: ./release
- name: Download CHANGELOG
uses: actions/download-artifact@v4
with:
name: CHANGELOG.md
path: ./release
- name: Save Release
uses: actions/upload-artifact@v4
with:
name: apc-p15-tool_darwin_arm64
path: ./release
release-file-darwin-amd64:
needs: [build-common, build-darwin-amd64]
runs-on: ubuntu-24.04
steps:
- name: Make release directory
run: mkdir ./release
- name: Download Tool Binary
uses: actions/download-artifact@v4
with:
name: apc-p15-tool-darwin-amd64
path: ./release
- name: Download Install Binary
uses: actions/download-artifact@v4
with:
name: apc-p15-install-darwin-amd64
path: ./release
- name: Download README
uses: actions/download-artifact@v4
with:
name: README.md
path: ./release
- name: Download LICENSE
uses: actions/download-artifact@v4
with:
name: LICENSE.md
path: ./release
- name: Download CHANGELOG
uses: actions/download-artifact@v4
with:
name: CHANGELOG.md
path: ./release
- name: Save Release
uses: actions/upload-artifact@v4
with:
name: apc-p15-tool_darwin_amd64
path: ./release

View file

@ -1,5 +1,19 @@
# APC P15 Tool Changelog # APC P15 Tool Changelog
## [v1.2.2] - 2025-04-22
All dependencies updated.
Add darwin arm64 and amd64 builds.
## [v1.2.1] - 2025-03-17
Fix time check for UPS when it is set to GMT timezone.
All dependencies updated.
## [v1.2.0] - 2025-01-27 ## [v1.2.0] - 2025-01-27
Add a new feature to `install` that checks the time of the UPS to confirm Add a new feature to `install` that checks the time of the UPS to confirm

View file

@ -171,6 +171,11 @@ separate script.
![Cert Warden with APC P15 Tool](https://raw.githubusercontent.com/gregtwallace/apc-p15-tool/main/img/apc-p15-tool.png) ![Cert Warden with APC P15 Tool](https://raw.githubusercontent.com/gregtwallace/apc-p15-tool/main/img/apc-p15-tool.png)
## Links
@Owl-Tec's write up using this tool with ACDS:
https://owltec.ca/Windows+Server/Deploying+An+Internal+HTTPS+Certificate+for+a+UPS+APC+with+ADCS+(Active+Directory+Certificate+Services)+with+APC+P15+Tool
## Thanks ## Thanks
Special thanks to the following people and resources which helped me Special thanks to the following people and resources which helped me

View file

@ -34,3 +34,25 @@ $env:GOARCH = "arm64"
$env:GOOS = "linux" $env:GOOS = "linux"
$env:CGO_ENABLED = 0 $env:CGO_ENABLED = 0
go build -o $outDir/apc-p15-install-arm64 ./cmd/install_only go build -o $outDir/apc-p15-install-arm64 ./cmd/install_only
# Darwin (MacOS) amd64
$env:GOARCH = "amd64"
$env:GOOS = "darwin"
$env:CGO_ENABLED = 0
go build -o $outDir/apc-p15-tool-darwin-amd64 ./cmd/tool
$env:GOARCH = "amd64"
$env:GOOS = "darwin"
$env:CGO_ENABLED = 0
go build -o $outDir/apc-p15-install-darwin-amd64 ./cmd/install_only
# Darwin (MacOS) arm64
$env:GOARCH = "arm64"
$env:GOOS = "darwin"
$env:CGO_ENABLED = 0
go build -o $outDir/apc-p15-tool-darwin-arm64 ./cmd/tool
$env:GOARCH = "arm64"
$env:GOOS = "darwin"
$env:CGO_ENABLED = 0
go build -o $outDir/apc-p15-install-darwin-arm64 ./cmd/install_only

6
go.mod
View file

@ -1,14 +1,14 @@
module apc-p15-tool module apc-p15-tool
go 1.23.5 go 1.24.2
require ( require (
github.com/peterbourgon/ff/v4 v4.0.0-alpha.4 github.com/peterbourgon/ff/v4 v4.0.0-alpha.4
github.com/sigurn/crc16 v0.0.0-20240131213347-83fcde1e29d1 github.com/sigurn/crc16 v0.0.0-20240131213347-83fcde1e29d1
golang.org/x/crypto v0.32.0 golang.org/x/crypto v0.37.0
) )
require golang.org/x/sys v0.29.0 // indirect require golang.org/x/sys v0.32.0 // indirect
replace apc-p15-tool/cmd/install_only => /cmd/install_only replace apc-p15-tool/cmd/install_only => /cmd/install_only

12
go.sum
View file

@ -4,11 +4,11 @@ github.com/peterbourgon/ff/v4 v4.0.0-alpha.4 h1:aiqS8aBlF9PsAKeMddMSfbwp3smONCn3
github.com/peterbourgon/ff/v4 v4.0.0-alpha.4/go.mod h1:H/13DK46DKXy7EaIxPhk2Y0EC8aubKm35nBjBe8AAGc= github.com/peterbourgon/ff/v4 v4.0.0-alpha.4/go.mod h1:H/13DK46DKXy7EaIxPhk2Y0EC8aubKm35nBjBe8AAGc=
github.com/sigurn/crc16 v0.0.0-20240131213347-83fcde1e29d1 h1:NVK+OqnavpyFmUiKfUMHrpvbCi2VFoWTrcpI7aDaJ2I= github.com/sigurn/crc16 v0.0.0-20240131213347-83fcde1e29d1 h1:NVK+OqnavpyFmUiKfUMHrpvbCi2VFoWTrcpI7aDaJ2I=
github.com/sigurn/crc16 v0.0.0-20240131213347-83fcde1e29d1/go.mod h1:9/etS5gpQq9BJsJMWg1wpLbfuSnkm8dPF6FdW2JXVhA= github.com/sigurn/crc16 v0.0.0-20240131213347-83fcde1e29d1/go.mod h1:9/etS5gpQq9BJsJMWg1wpLbfuSnkm8dPF6FdW2JXVhA=
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o=
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=

Binary file not shown.

Before

(image error) Size: 102 KiB

After

(image error) Size: 93 KiB

Before After
Before After

View file

@ -28,6 +28,12 @@ func (cli *Client) GetTime() (time.Time, error) {
formatUPSVal := datePieces[3] formatUPSVal := datePieces[3]
timeZoneVal := datePieces[4] timeZoneVal := datePieces[4]
// GMT time requires + prefix
// APC UPS fails to use the required +, so add it
if timeZoneVal == "00:00" {
timeZoneVal = "+" + timeZoneVal
}
// known APC UPS format strings // known APC UPS format strings
dateFormatVal := "" dateFormatVal := ""
switch formatUPSVal { switch formatUPSVal {

View file

@ -12,7 +12,7 @@ import (
) )
const ( const (
appVersion = "1.2.0" appVersion = "1.2.2"
) )
// struct for receivers to use common app pieces // struct for receivers to use common app pieces