wip-flag-migration #28
60
cmd/main.go
60
cmd/main.go
@ -2,12 +2,14 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/csv"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/asm"
|
|
||||||
"git.defalsify.org/vise.git/cache"
|
"git.defalsify.org/vise.git/cache"
|
||||||
"git.defalsify.org/vise.git/engine"
|
"git.defalsify.org/vise.git/engine"
|
||||||
"git.defalsify.org/vise.git/persist"
|
"git.defalsify.org/vise.git/persist"
|
||||||
@ -36,44 +38,40 @@ func main() {
|
|||||||
st := state.NewState(16)
|
st := state.NewState(16)
|
||||||
st.UseDebug()
|
st.UseDebug()
|
||||||
|
|
||||||
// Initialize the FlagParser
|
|
||||||
pfp := path.Join(scriptDir, "pp.csv")
|
pfp := path.Join(scriptDir, "pp.csv")
|
||||||
parser := asm.NewFlagParser()
|
file, err := os.Open(pfp)
|
||||||
|
|
||||||
// Load flags from the pp.csv file
|
|
||||||
_, err := parser.Load(pfp)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "Failed to load flags: %v\n", err)
|
fmt.Fprintf(os.Stderr, "Failed to open CSV file: %v\n", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
defer file.Close()
|
||||||
|
reader := csv.NewReader(file)
|
||||||
|
|
||||||
// Register all flags loaded from pp.csv
|
// Iterate through the CSV records and register the flags
|
||||||
flagKeys := []string{
|
for {
|
||||||
"flag_language_set",
|
record, err := reader.Read()
|
||||||
"flag_account_created",
|
|
||||||
"flag_account_creation_failed",
|
|
||||||
"flag_account_pending",
|
|
||||||
"flag_account_success",
|
|
||||||
"flag_pin_mismatch",
|
|
||||||
"flag_pin_set",
|
|
||||||
"flag_account_authorized",
|
|
||||||
"flag_invalid_recipient",
|
|
||||||
"flag_invalid_recipient_with_invite",
|
|
||||||
"flag_invalid_amount",
|
|
||||||
"flag_incorrect_pin",
|
|
||||||
"flag_valid_pin",
|
|
||||||
"flag_allow_update",
|
|
||||||
"flag_single_edit",
|
|
||||||
"flag_incorrect_date_format",
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, key := range flagKeys {
|
|
||||||
id, err := parser.GetFlag(key)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "Failed to get flag %s: %v\n", key, err)
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
fmt.Fprintf(os.Stderr, "Error reading CSV file: %v\n", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure the record starts with "flag" and has at least 3 columns
|
||||||
|
if len(record) < 3 || record[0] != "flag" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
state.FlagDebugger.Register(id, key)
|
|
||||||
|
flagName := record[1]
|
||||||
|
flagValue, err := strconv.Atoi(record[2])
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "Failed to convert flag value %s to integer: %v\n", record[2], err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Register the flag
|
||||||
|
state.FlagDebugger.Register(uint32(flagValue), flagName)
|
||||||
|
|||||||
}
|
}
|
||||||
|
|
||||||
rfs := resource.NewFsResource(scriptDir)
|
rfs := resource.NewFsResource(scriptDir)
|
||||||
|
@ -841,9 +841,10 @@ func (h *Handlers) InitiateTransaction(ctx context.Context, sym string, input []
|
|||||||
account_authorized_flag, err := h.parser.GetFlag("flag_account_authorized")
|
account_authorized_flag, err := h.parser.GetFlag("flag_account_authorized")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
res.FlagReset = append(res.FlagReset, account_authorized_flag)
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
res.FlagReset = append(res.FlagReset, account_authorized_flag)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
LOAD reset_incorrect 0
|
LOAD reset_incorrect 6
|
||||||
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
|
CATCH _ flag_account_authorized 0
|
||||||
LOAD get_amount 10
|
LOAD get_amount 10
|
||||||
MAP get_amount
|
MAP get_amount
|
||||||
RELOAD get_recipient
|
RELOAD get_recipient
|
||||||
|
@ -6,7 +6,7 @@ MAP get_sender
|
|||||||
MOUT back 0
|
MOUT back 0
|
||||||
MOUT quit 9
|
MOUT quit 9
|
||||||
HALT
|
HALT
|
||||||
LOAD authorize_account 1
|
LOAD authorize_account 6
|
||||||
RELOAD authorize_account
|
RELOAD authorize_account
|
||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
INCMP _ 0
|
INCMP _ 0
|
||||||
|
Loading…
Reference in New Issue
Block a user
A logline to show debug the flag loaded would be nice