From 9d5bae8a14d88c44cd191ed73a5c2db7543e7eec Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 2 Mar 2025 03:03:45 -0600 Subject: add a 'forge mode' concept --- forgeConfig.proto | 8 ++++++++ mode.go | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 mode.go diff --git a/forgeConfig.proto b/forgeConfig.proto index b57b627..78dd5c3 100644 --- a/forgeConfig.proto +++ b/forgeConfig.proto @@ -36,6 +36,13 @@ message ForgeConfig { // `autogenpb:nom string goSrc = 13; // is ~/go/src unless a go.work file is found } +// todo: fix autogenpb to look for enum +enum ForgeMode { + MASTER = 0; // "release mode" + DEVEL = 1; // "patch mode" + USER = 2; // "work mode" +} + message ForgeConfigs { // `autogenpb:marshal` `autogenpb:nomutex` string uuid = 1; // `autogenpb:uuid:1941cd4f-1cfd-4bf6-aa75-c2c391907e81` string version = 2; // `autogenpb:version:v0.0.47` @@ -44,4 +51,5 @@ message ForgeConfigs { // `autogenpb:mar string xterm = 5; // what xterm the user wants as the default repeated string xtermArgv = 6; // the argv line for xterm string defaultGui = 7; // default GUI plugin to use + ForgeMode mode = 8; // what "mode" forge is in } diff --git a/mode.go b/mode.go new file mode 100644 index 0000000..3e22d52 --- /dev/null +++ b/mode.go @@ -0,0 +1,17 @@ +// Copyright 1994-2025 WIT.COM Inc Licensed GPL 3.0 + +package forgepb + +// TODO: implement i18n with the protobuf's +func (f *Forge) GetMode() string { + switch f.Config.Mode { + case ForgeMode_MASTER: + return "Release Mode (master branches)" + case ForgeMode_DEVEL: + return "Devel/Patch Mode (devel branches)" + case ForgeMode_USER: + return "Hack Mode (user branches)" + default: + return f.Config.Mode.String() + } +} -- cgit v1.2.3