Skip to content

olehan/marker

Repository files navigation

✏️ 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 to see more usage variations.

Project:

project
├── config.go
└── app/
    └── main.go

config.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

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

$ go get github.com/olehan/marker

License

MIT