cli/cmd/updater
Snider 74c61f3698
Some checks failed
Deploy / Test (push) Failing after 1s
Deploy / Build App Image (push) Has been skipped
Security Scan / Secret Detection (push) Successful in 21s
Deploy / Build Web Image (push) Has been skipped
Security Scan / Dependency & Config Scan (push) Failing after 20s
Deploy / Build Core Image (push) Failing after 10m18s
Deploy / Deploy to Production (push) Has been skipped
Security Scan / Go Vulnerability Check (push) Failing after 6m27s
fix: resolve vet warnings and remove stale workflows
- Fix 11 non-constant format string warnings in cmd/session
  (use cli.Print format args instead of fmt.Sprintf wrapper)
- Remove leftover .github/workflows/ from cmd/updater
  (ci.yml and release.yml from when updater was standalone)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:54:51 +00:00
..
build refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
docs refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
ui refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
.gitignore refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
cmd.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
cmd_unix.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
cmd_windows.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
generic_http.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
generic_http_test.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
github.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
github_test.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
LICENSE refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
Makefile refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
mock_github_client_test.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
package.json refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
README.md refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
service.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
service_examples_test.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
service_test.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
tests.patch refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
updater.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
updater_test.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00
version.go refactor: flatten commands, extract php/ci to own repos (#2) 2026-02-16 14:45:06 +00:00

Core Element Template

This repository is a template for developers to create custom HTML elements for the core web3 framework. It includes a Go backend, an Angular custom element, and a full release cycle configuration.

Getting Started

  1. Clone the repository:

    git clone https://github.com/your-username/core-element-template.git
    
  2. Install the dependencies:

    cd core-element-template
    go mod tidy
    cd ui
    npm install
    
  3. Run the development server:

    go run ./cmd/demo-cli serve
    

    This will start the Go backend and serve the Angular custom element.

Building the Custom Element

To build the Angular custom element, run the following command:

cd ui
npm run build

This will create a single JavaScript file in the dist directory that you can use in any HTML page.

Usage

To use the updater library in your Go project, you can use the UpdateService.

GitHub-based Updates

package main

import (
	"fmt"
	"log"

	"github.com/snider/updater"
)

func main() {
	config := updater.UpdateServiceConfig{
		RepoURL:        "https://github.com/owner/repo",
		Channel:        "stable",
		CheckOnStartup: updater.CheckAndUpdateOnStartup,
	}

	updateService, err := updater.NewUpdateService(config)
	if err != nil {
		log.Fatalf("Failed to create update service: %v", err)
	}

	if err := updateService.Start(); err != nil {
		fmt.Printf("Update check failed: %v\n", err)
	}
}

Generic HTTP Updates

For updates from a generic HTTP server, the server should provide a latest.json file at the root of the RepoURL. The JSON file should have the following structure:

{
  "version": "1.2.3",
  "url": "https://your-server.com/path/to/release-asset"
}

You can then configure the UpdateService as follows:

package main

import (
	"fmt"
	"log"

	"github.com/snider/updater"
)

func main() {
	config := updater.UpdateServiceConfig{
		RepoURL:        "https://your-server.com",
		CheckOnStartup: updater.CheckAndUpdateOnStartup,
	}

	updateService, err := updater.NewUpdateService(config)
	if err != nil {
		log.Fatalf("Failed to create update service: %v", err)
	}

	if err := updateService.Start(); err != nil {
		fmt.Printf("Update check failed: %v\n", err)
	}
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the EUPL-1.2 License - see the LICENSE file for details.