wip-flag-migration #28

Merged
Alfred-mk merged 44 commits from wip-flag-migration into master 2024-09-04 11:25:34 +02:00
4 changed files with 35 additions and 34 deletions
Showing only changes of commit 94f12edeaf - Show all commits

View File

@ -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)
}
defer file.Close()
reader := csv.NewReader(file)
// Iterate through the CSV records and register the flags
for {
record, err := reader.Read()
if err != nil {
if err == io.EOF {
break
}
fmt.Fprintf(os.Stderr, "Error reading CSV file: %v\n", err)
os.Exit(1) os.Exit(1)
} }
// Register all flags loaded from pp.csv // Ensure the record starts with "flag" and has at least 3 columns
flagKeys := []string{ if len(record) < 3 || record[0] != "flag" {
"flag_language_set",
"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 {
fmt.Fprintf(os.Stderr, "Failed to get flag %s: %v\n", key, err)
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)
Review

A logline to show debug the flag loaded would be nice

A logline to show debug the flag loaded would be nice
} }
rfs := resource.NewFsResource(scriptDir) rfs := resource.NewFsResource(scriptDir)

View File

@ -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
} }

View File

@ -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

View File

@ -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