@@ -3,31 +3,59 @@ package cmd
33import (
44 "fmt"
55
6- "github.com/ChargePi/ChargePi-go/internal/pkg/models/settings"
7- cfg "github.com/ChargePi/ChargePi-go/internal/pkg/settings"
6+ "go.uber.org/zap"
7+
8+ "github.com/ChargePi/ocpp-manager/ocpp_v16"
89 "github.com/spf13/cobra"
10+
11+ "github.com/ChargePi/ChargePi-go/internal/auth"
12+ "github.com/ChargePi/ChargePi-go/internal/chargepoint"
13+ "github.com/ChargePi/ChargePi-go/internal/pkg/badger"
14+ cfg "github.com/ChargePi/ChargePi-go/internal/pkg/configuration"
15+ exporter2 "github.com/ChargePi/ChargePi-go/internal/pkg/configuration/exporter"
16+ "github.com/ChargePi/ChargePi-go/internal/pkg/configuration/manager"
917)
1018
1119var (
1220 exportEvseFolderPath * string
1321 exportOcppConfigurationFilePath * string
1422 exportAuthFilePath * string
1523 exportSettingsFilePath * string
24+ databasePath * string
1625)
1726
1827// exportCommand represents the export command
1928func exportCommand () * cobra.Command {
2029 exportCmd := & cobra.Command {
21- Use : "export" ,
22- Short : "Export settings from ChargePi." ,
23- Long : `` ,
30+ Use : "export" ,
31+ Short : "Export settings from ChargePi." ,
32+ Long : `` ,
33+ Version : chargepoint .FirmwareVersion ,
2434 RunE : func (cmd * cobra.Command , args []string ) error {
25- exporter := cfg .GetExporter ()
35+ db , err := badger .NewBadgerDb (* databasePath )
36+ if err != nil {
37+ return fmt .Errorf ("could not create database: %v" , err )
38+ }
39+
40+ logger := zap .L ()
41+ tagManager := auth .NewManager (logger , db , db )
42+
43+ configurationManager , err := ocpp_v16 .NewV16ConfigurationManager (ocpp_v16 .NewEmptyConfiguration ())
44+ if err != nil {
45+ return fmt .Errorf ("could not create OCPP configuration manager: %v" , err )
46+ }
47+
48+ settingsManager , err := manager .NewManager (logger , db , db , configurationManager )
49+ if err != nil {
50+ return fmt .Errorf ("could not create settings manager: %v" , err )
51+ }
52+
53+ exporter := exporter2 .NewExporter (logger , tagManager , settingsManager , db )
2654
27- evseFlag := cmd .Flags ().Lookup (settings .EvseFlag ).Changed
28- ocppFlag := cmd .Flags ().Lookup (settings .OcppConfigPathFlag ).Changed
29- authFlag := cmd .Flags ().Lookup (settings .AuthFileFlag ).Changed
30- settingsFlag := cmd .Flags ().Lookup (settings .SettingsFlag ).Changed
55+ evseFlag := cmd .Flags ().Lookup (cfg .EvseFlag ).Changed
56+ ocppFlag := cmd .Flags ().Lookup (cfg .OcppConfigPathFlag ).Changed
57+ authFlag := cmd .Flags ().Lookup (cfg .AuthFileFlag ).Changed
58+ settingsFlag := cmd .Flags ().Lookup (cfg .SettingsFlag ).Changed
3159
3260 // If the flag was set, export the EVSE configurations
3361 if evseFlag {
@@ -65,10 +93,11 @@ func exportCommand() *cobra.Command {
6593 },
6694 }
6795
68- exportEvseFolderPath = exportCmd .Flags ().String (settings .EvseFlag , "./configs/evses" , "evse folder path" )
69- exportOcppConfigurationFilePath = exportCmd .Flags ().String (settings .OcppConfigPathFlag , "./configs/ocpp.yaml" , "OCPP config file path" )
70- exportAuthFilePath = exportCmd .Flags ().String (settings .AuthFileFlag , "./configs/authorization.yaml" , "authorization file path" )
71- exportSettingsFilePath = exportCmd .Flags ().String (settings .SettingsFlag , "./configs/settings.yaml" , "settings file path" )
96+ exportEvseFolderPath = exportCmd .Flags ().String (cfg .EvseFlag , "./configs/evses" , "evse folder path" )
97+ exportOcppConfigurationFilePath = exportCmd .Flags ().String (cfg .OcppConfigPathFlag , "./configs/ocpp.yaml" , "OCPP config file path" )
98+ exportAuthFilePath = exportCmd .Flags ().String (cfg .AuthFileFlag , "./configs/authorization.yaml" , "authorization file path" )
99+ exportSettingsFilePath = exportCmd .Flags ().String (cfg .SettingsFlag , "./configs/settings.yaml" , "settings file path" )
100+ databasePath = exportCmd .Flags ().String ("database" , cfg .DatabasePath , "database path" )
72101
73102 return exportCmd
74103}
0 commit comments