## Summary - Extract PHP/Laravel commands to `core/php` repo (42 files, standalone module) - Extract CI/release + SDK commands to `core/ci` repo (10 files) - Remove `internal/variants/` build tag system entirely - Move all 30 remaining command packages from `internal/cmd/` to top-level `cmd/` - Rewrite `main.go` with direct imports — no more variant selection - PHP and CI are now optional via commented import lines in main.go Co-authored-by: Claude <developers@lethean.io> Reviewed-on: #2 Co-authored-by: Charon <charon@lthn.ai> Co-committed-by: Charon <charon@lthn.ai>
117 lines
2.5 KiB
Markdown
117 lines
2.5 KiB
Markdown
# 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:**
|
|
```bash
|
|
git clone https://github.com/your-username/core-element-template.git
|
|
```
|
|
|
|
2. **Install the dependencies:**
|
|
```bash
|
|
cd core-element-template
|
|
go mod tidy
|
|
cd ui
|
|
npm install
|
|
```
|
|
|
|
3. **Run the development server:**
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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
|
|
|
|
```go
|
|
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:
|
|
|
|
```json
|
|
{
|
|
"version": "1.2.3",
|
|
"url": "https://your-server.com/path/to/release-asset"
|
|
}
|
|
```
|
|
|
|
You can then configure the `UpdateService` as follows:
|
|
|
|
```go
|
|
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](LICENSE) file for details.
|