An open API service indexing awesome lists of open source software.

https://github.com/olehan/marker

✏️ Work with Golang plugins easier
https://github.com/olehan/marker

go go-module go-plugins golang marker

Last synced: about 1 year ago
JSON representation

✏️ Work with Golang plugins easier

Awesome Lists containing this project

README

          

✏️ Marker


Mark your golang plugin file to get the best of it



Marker Travis Status


Marker Code Coverage


Marker License


Marker Last Release

----


Usage
|
Installation
|
License

----

I know that this (✏️) is not a marker, but I do not have anything better \( ̄▽ ̄)/

Usage

*Actually I'd suggest you to go into the [examples directory](examples) to see more usage
variations.*

***Project:***
```
project
├── config.go
└── app/
└── main.go
```

***config.go***
```go
package main // Notice that the package has to be main to build a plugin.

// Variables and functions also have to be public to import them using marker.
var ApiUrl = "https://api.github.com"
```

***app/main.go***
```go
package main

import (
"fmt"
"github.com/olehan/marker"
"github.com/olehan/marker/path"
)

func main() {
// Here we're marking our file as a plugin and telling the marker what we need
// and what it should be.
output, err := marker.Mark(
path.RelativeToCaller("../config.go"),
// We're specifying the variable's name and its type so marker could
// validate the value that was imported from the plugin.
marker.NewMarker("ApiUrl", marker.StringValue),
)

if err != nil {
panic(err)
}

// Symbol's always pointer.
apiUrl := output.(*string)
fmt.Println("apiUrl:", *apiUrl)
}
```

Installation

```sh
$ go get github.com/olehan/marker
```

License

[MIT](LICENSE)