summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean E. Russell <ser@ser1.net>2020-04-16 08:14:13 -0500
committerSean E. Russell <ser@ser1.net>2020-04-16 08:14:13 -0500
commit721a587abcb30fd11b9a0a2590524c110adc725c (patch)
tree20d5c14f9ab6c254e6bd7bcf5c96b422d114d1eb
parent7a89a5b26c0ac09ec466c8bba12b7562458e3e7b (diff)
Switch away from Go Plugin API for the time being.
-rw-r--r--CHANGELOG.md3
-rw-r--r--cmd/gotop/main.go49
-rw-r--r--docs/releasing.md20
-rw-r--r--widgets/batterygauge.go1
4 files changed, 15 insertions, 58 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e1c1432..d4a1554 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,10 +19,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Adds support for system-wide configurations. This improves support for package maintainers.
- Help function to print key bindings
+- Help prints locations of config files (color schemes & layouts)
+- Help prints location of logs
### Changed
- Log files stored in \$XDG_CACHE_HOME; DATA, CONFIG, CACHE, and RUNTIME are the only directories specified by the FreeDesktop spec.
+- Extensions are now built with a build tool; this is an interim solution until issues with the Go plugin API are resolved.
### Removed
diff --git a/cmd/gotop/main.go b/cmd/gotop/main.go
index fc2ac7a..4888f07 100644
--- a/cmd/gotop/main.go
+++ b/cmd/gotop/main.go
@@ -8,7 +8,6 @@ import (
"os"
"os/signal"
"path/filepath"
- "plugin"
"strconv"
"strings"
"syscall"
@@ -463,12 +462,6 @@ func run() int {
}
ly := layout.ParseLayout(lstream)
- err = loadExtensions(conf)
- if err != nil {
- stderrLogger.Print(err)
- return 1
- }
-
if conf.Test {
return runTests(conf)
}
@@ -546,48 +539,6 @@ func getLayout(conf gotop.Config) (io.Reader, error) {
}
}
-func loadExtensions(conf gotop.Config) error {
- var hasError bool
- for _, ex := range conf.Extensions {
- exf := ex + ".so"
- fn := exf
- folder := conf.ConfigDir.QueryFolderContainsFile(fn)
- if folder == nil {
- paths := make([]string, 0)
- for _, d := range conf.ConfigDir.QueryFolders(configdir.Existing) {
- paths = append(paths, d.Path)
- }
- log.Printf("unable find extension %s in %s", fn, strings.Join(paths, ", "))
- hasError = true
- continue
- }
- fp := filepath.Join(folder.Path, fn)
- p, err := plugin.Open(fp)
- if err != nil {
- hasError = true
- log.Printf(err.Error())
- continue
- }
- init, err := p.Lookup("Init")
- if err != nil {
- hasError = true
- log.Printf(err.Error())
- continue
- }
- initFunc, ok := init.(func())
- if !ok {
- hasError = true
- log.Printf(err.Error())
- continue
- }
- initFunc()
- }
- if hasError {
- return fmt.Errorf("error initializing plugins")
- }
- return nil
-}
-
func runTests(conf gotop.Config) int {
fmt.Printf("PASS")
return 0
diff --git a/docs/releasing.md b/docs/releasing.md
index d77b6dd..e87e4de 100644
--- a/docs/releasing.md
+++ b/docs/releasing.md
@@ -6,8 +6,10 @@ Current steps for a release:
3. Tag
4. Push everything
5. When the github workflows complete, finish the draft release and publish.
-6. After the [Homebrew](https://github.com/xxxserxxx/homebrew-gotop) and [AUR](https://github.com/xxxserxxx/gotop-linux] projects are done, check out gotop-linux and run `aurpublish aur` and `aurpublish aur-bin`
-
+6. Wait for the [Homebrew](https://github.com/xxxserxxx/homebrew-gotop) and [AUR](https://github.com/xxxserxxx/gotop-linux] projects to finish building.
+ 1. check out gotop-linux and run `aurpublish aur` and `aurpublish aur-bin`
+ 2. update the hashes in the Nix package (see below), test build, push a pull request
+ 3. notify Homebrew
Homebrew is automatically updated. The AUR project still needs secret
credentials to aurpublish to the AUR repository, so the final publish step is
@@ -18,14 +20,14 @@ Oh, what a tangled web.
Nix adds new and interesting complexities to the release.
+0. Download the gotop src package; run sha256 on it to get the hash
1. cd to the nixpkgs directory
-2. docker run -it --rm --mount type=bind,source="\$(pwd)",target=/mnt nixos/nix sh
-3. cd /mnt
-4. nix-prefetch-url --unpack https://github.com/xxxserxxx/gotop/archive/v3.3.2.tar.gz
-5. Copy the sha256
-6. Update the version and hash in nixpkgs/pkgs/tools/system/gotop/default.nix
-8. In docker, install & run vgo2nix to update deps.nix
-7. nix-build -A gotop
+2. Update the sha256 hash in `pkgs/tools/system/gotop/default.nix`
+2. `docker run -it --rm --mount type=bind,source="\$(pwd)",target=/mnt nixos/nix sh`
+3. `cd /mnt`
+8. install & run vgo2nix to update deps.nix
+7. `nix-build -A gotop`
+8. When it fails, copy the hash and update the
For plugin development:
diff --git a/widgets/batterygauge.go b/widgets/batterygauge.go
index 534c1cf..d447713 100644
--- a/widgets/batterygauge.go
+++ b/widgets/batterygauge.go
@@ -12,6 +12,7 @@ import (
. "github.com/xxxserxxx/gotop/v3/termui"
)
+// FIXME 3.5.1 is 0% always
type BatteryGauge struct {
*Gauge
metric prometheus.Gauge