Add --pluginsdir flag. (#1)
Add a new flag, `--pluginsdir`, for setting the directory where plugins are stored. The default remains `$datadir/plugins`. Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com> Reviewed-on: #1
This commit is contained in:
parent
366f480bc1
commit
1d8f2a28e8
@ -20,7 +20,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path/filepath"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -57,6 +57,9 @@ const (
|
|||||||
var (
|
var (
|
||||||
// flags that configure the node
|
// flags that configure the node
|
||||||
nodeFlags = flags.Merge([]cli.Flag{
|
nodeFlags = flags.Merge([]cli.Flag{
|
||||||
|
//begin PluGeth code injection
|
||||||
|
utils.PluginsDirFlag,
|
||||||
|
//end PluGeth code injection
|
||||||
utils.IdentityFlag,
|
utils.IdentityFlag,
|
||||||
utils.UnlockedAccountFlag,
|
utils.UnlockedAccountFlag,
|
||||||
utils.PasswordFileFlag,
|
utils.PasswordFileFlag,
|
||||||
@ -336,7 +339,14 @@ func prepare(ctx *cli.Context) {
|
|||||||
// blocking mode, waiting for it to be shut down.
|
// blocking mode, waiting for it to be shut down.
|
||||||
func geth(ctx *cli.Context) error {
|
func geth(ctx *cli.Context) error {
|
||||||
//begin PluGeth code injection
|
//begin PluGeth code injection
|
||||||
if err := plugins.Initialize(path.Join(ctx.String(utils.DataDirFlag.Name), "plugins"), ctx); err != nil {
|
var pluginsDir string
|
||||||
|
if ctx.IsSet(utils.PluginsDirFlag.Name) {
|
||||||
|
pluginsDir = ctx.String(utils.PluginsDirFlag.Name)
|
||||||
|
} else {
|
||||||
|
pluginsDir = filepath.Join(ctx.String(utils.DataDirFlag.Name), "plugins")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := plugins.Initialize(pluginsDir, ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
prepare(ctx)
|
prepare(ctx)
|
||||||
|
@ -88,6 +88,14 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
// General settings
|
// General settings
|
||||||
|
//begin PluGeth code injection
|
||||||
|
PluginsDirFlag = &flags.DirectoryFlag{
|
||||||
|
Name: "pluginsdir",
|
||||||
|
Usage: "Directory for plugins",
|
||||||
|
Value: flags.DirectoryString(filepath.Join("<datadir>", "plugins")),
|
||||||
|
Category: flags.EthCategory,
|
||||||
|
}
|
||||||
|
//end PluGeth code injection
|
||||||
DataDirFlag = &flags.DirectoryFlag{
|
DataDirFlag = &flags.DirectoryFlag{
|
||||||
Name: "datadir",
|
Name: "datadir",
|
||||||
Usage: "Data directory for the databases and keystore",
|
Usage: "Data directory for the databases and keystore",
|
||||||
|
@ -58,6 +58,7 @@ func Lookup(name string, validate func(interface{}) bool) []interface{} {
|
|||||||
var DefaultPluginLoader *PluginLoader
|
var DefaultPluginLoader *PluginLoader
|
||||||
|
|
||||||
func NewPluginLoader(target string) (*PluginLoader, error) {
|
func NewPluginLoader(target string) (*PluginLoader, error) {
|
||||||
|
log.Info("Loading plugins from directory", "path", target)
|
||||||
pl := &PluginLoader{
|
pl := &PluginLoader{
|
||||||
Plugins: []pluginDetails{},
|
Plugins: []pluginDetails{},
|
||||||
Subcommands: make(map[string]Subcommand),
|
Subcommands: make(map[string]Subcommand),
|
||||||
|
Loading…
Reference in New Issue
Block a user