tools

package
v0.0.0-...-e637bcb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2026 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	PFDShortFlag                       = "p"
	PFDLongFlag                        = "pfd"
	AtomicProcessTableShortFlag        = "ap"
	AtomicProcessTableLongFlag         = "atomic-process"
	AtomicDeliverableTableShortFlag    = "ad"
	AtomicDeliverableTableLongFlag     = "atomic-deliverable"
	CompositeProcessTableShortFlag     = "cp"
	CompositeProcessTableLongFlag      = "composite-process"
	CompositeDeliverableTableShortFlag = "cd"
	CompositeDeliverableTableLongFlag  = "composite-deliverable"
	ResourceTableShortFlag             = "r"
	ResourceTableLongFlag              = "resource"
	MilestoneTableShortFlag            = "m"
	MilestoneTableLongFlag             = "milestone"
	GroupTableShortFlag                = "g"
	GroupTableLongFlag                 = "group"
	ConfigShortFlag                    = "f"
	ConfigLongFlag                     = "config"
	ResourceModeFlag                   = "res"
	FeedbackModeFlag                   = "fb"
	OutFormatFlag                      = "out-format"
	EmphasisTSVFlag                    = "em-tsv"
	OutDirFlag                         = "out-dir"
	InFormatFlag                       = "in-format"
)

Functions

func DeclareAtomicDeliverableTableOptions

func DeclareAtomicDeliverableTableOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclareAtomicProcessTableOptions

func DeclareAtomicProcessTableOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclareBusinessTimeFuncOptions

func DeclareBusinessTimeFuncOptions(flags *flag.FlagSet, options *BusinessTimeFuncRawOptions)

func DeclareCommonOptions

func DeclareCommonOptions(flags *flag.FlagSet, options *CommonRawOptions)

func DeclareCompositeDeliverableTableOptions

func DeclareCompositeDeliverableTableOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclareCompositeDeliverableTableOptionsWithFlagNames

func DeclareCompositeDeliverableTableOptionsWithFlagNames(shortName string, longName string, flags *flag.FlagSet, shortPath *string, path *string)

func DeclareCompositeProcessTableOptions

func DeclareCompositeProcessTableOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclareConfigOptions

func DeclareConfigOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclareEmphasisTSVOptions

func DeclareEmphasisTSVOptions(flags *flag.FlagSet, path *string)

func DeclareExecModelOptions

func DeclareExecModelOptions(flags *flag.FlagSet, resourceMode *string, feedbackMode *string)

func DeclareFSMOptions

func DeclareFSMOptions(flags *flag.FlagSet, options *FSMRawOptions, configLongPath *string, configShortPath *string)

func DeclareGroupTableOptions

func DeclareGroupTableOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclareMilestoneTableOptions

func DeclareMilestoneTableOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclarePFDOptions

func DeclarePFDOptions(flags *flag.FlagSet, pfdShortPath *string, pfdLongPath *string)

func DeclarePFDOptionsWithFlagNames

func DeclarePFDOptionsWithFlagNames(shortName string, longName string, flags *flag.FlagSet, pfdShortFlag *string, pfdLongFlag *string)

func DeclarePlanOutputFormatOptions

func DeclarePlanOutputFormatOptions(flags *flag.FlagSet, options *PlanOutputFormatRawOptions)

func DeclareResourceTableOptions

func DeclareResourceTableOptions(flags *flag.FlagSet, shortPath *string, path *string)

func DeclareSearchOptions

func DeclareSearchOptions(flags *flag.FlagSet, options *SearchRawOptions, randomSeed int64)

func FSMPrepare

func FSMPrepare(fsmEnvSeed *FSMEnvSeed, locale locale.Locale, logger *slog.Logger) (*fsm.Env, error)

func NoFlags

func NoFlags() *flag.FlagSet

func ParsePageList

func ParsePageList(s string) []string

func PrintUsageHeader

func PrintUsageHeader(flags *flag.FlagSet, usageLine, shortHelp string)

func RequireTablePath

func RequireTablePath(flagName string, path string, shortPath string) error

func ResolveModel

func ResolveModel(options FSMRawOptions, resourceModeFlag string, feedbackModeFlag string) (execmodel.Model, error)

func ResolvePath

func ResolvePath(basePath, path string) string

func ValidateAtomicDeliverableTableOptions

func ValidateAtomicDeliverableTableOptions(shortPath *string, path *string, basePath string) (io.Reader, string, error)

func ValidateAtomicProcessTableOptions

func ValidateAtomicProcessTableOptions(shortPath *string, path *string, basePath string) (io.Reader, string, error)

func ValidateCompositeDeliverableTableOptions

func ValidateCompositeDeliverableTableOptions(shortPath *string, path *string, basePath string) (io.Reader, string, error)

func ValidateCompositeProcessTableOptions

func ValidateCompositeProcessTableOptions(shortPath *string, path *string, basePath string) (io.Reader, string, error)

func ValidateEmphasisTSVOptions

func ValidateEmphasisTSVOptions(path string) (*emphasis.Set, error)

func ValidateFSMEnvSeed

func ValidateFSMEnvSeed(fsmEnvSeed *FSMEnvSeed, logger *slog.Logger, locale locale.Locale) error

func ValidateGroupTableOptions

func ValidateGroupTableOptions(shortPath *string, path *string, basePath string) (io.Reader, string, error)

func ValidateMilestoneTableOptions

func ValidateMilestoneTableOptions(shortPath *string, path *string, basePath string) (io.Reader, string, error)

func ValidatePFDOptions

func ValidatePFDOptions(pfdShortPath *string, pfdLongPath *string, basePath string) (io.Reader, string, error)

func ValidateResourceTableOptions

func ValidateResourceTableOptions(shortPath *string, path *string, basePath string) (io.Reader, string, error)

func ValidateSearchOptions

func ValidateSearchOptions(searchRawOptions *SearchRawOptions) (fsm.SearchFunc, error)

func ValidateSearchWithPrefixOptions

func ValidateSearchWithPrefixOptions(searchRawOptions *SearchRawOptions) (fsm.SearchWithPrefixFunc, error)

func WriteFiles

func WriteFiles(files []FileOutput) error

func WriteOutput

func WriteOutput(w io.Writer, destPath string, out []byte) error

func WriteProjectJSON

func WriteProjectJSON(w io.Writer, options FSMRawOptions) error

Types

type BusinessTimeFuncOptions

type BusinessTimeFuncOptions struct {
	StartDay         bizday.Day
	BusinessTimeFunc bizday.BusinessTimeFunc
	Duration         time.Duration
}

func ValidateBusinessTimeFuncOptions

func ValidateBusinessTimeFuncOptions(options *BusinessTimeFuncRawOptions) (*BusinessTimeFuncOptions, error)

type BusinessTimeFuncRawOptions

type BusinessTimeFuncRawOptions struct {
	StartDay                  string  `json:"start_day,omitempty"`
	StartTime                 string  `json:"start_time,omitempty"`
	Duration                  float64 `json:"duration,omitempty"`
	Weekdays                  string  `json:"weekdays,omitempty"`
	AdditionalNotBusinessDays string  `json:"not_biz_days,omitempty"`
}

type CommonOptions

type CommonOptions struct {
	Help      bool          `json:"help"`
	ShortHelp bool          `json:"short_help"`
	Version   bool          `json:"version"`
	LogLevel  slog.Level    `json:"log_level"`
	Logger    *slog.Logger  `json:"logger"`
	Locale    locale.Locale `json:"locale"`
}

func ValidateCommonOptions

func ValidateCommonOptions(options *CommonRawOptions) (*CommonOptions, error)

type CommonRawOptions

type CommonRawOptions struct {
	Help         bool
	ShortHelp    bool
	ShortVersion bool
	Version      bool
	Silent       bool
	Debug        bool
	Locale       string
}

type FSMEnvSeed

type FSMEnvSeed struct {
	PFD                                  *pfd.PFD
	AtomicProcessTable                   *pfd.AtomicProcessTable
	AtomicDeliverableTable               *pfd.AtomicDeliverableTable
	CompositeDeliverableTable            *pfd.CompositeDeliverableTable
	ResourceTable                        *fsmtable.ResourceTable
	MilestoneTable                       *fsmtable.MilestoneTable
	GroupTable                           *fsmtable.GroupTable
	MaximalAvailableAllocationsThreshold int
	Model                                execmodel.Model
}

func ParseFSMEnvSeed

func ParseFSMEnvSeed(fsOpts *FSMOptions, logger *slog.Logger) (*FSMEnvSeed, error)

type FSMOptions

type FSMOptions struct {
	PFDReader                            io.Reader       `json:"-"`
	AtomicProcessTableReader             io.Reader       `json:"-"`
	AtomicDeliverableTableReader         io.Reader       `json:"-"`
	CompositeProcessTableReader          io.Reader       `json:"-"`
	CompositeDeliverableTableReader      io.Reader       `json:"-"`
	ResourceTableReader                  io.Reader       `json:"-"`
	MilestoneTableReader                 io.Reader       `json:"-"`
	GroupTableReader                     io.Reader       `json:"-"`
	MaximalAvailableAllocationsThreshold int             `json:"maximal_available_allocations_threshold"`
	Model                                execmodel.Model `json:"-"`
}

func ValidateAllFSMOptions

func ValidateAllFSMOptions(options *FSMRawOptions, basePath string) (*FSMOptions, error)

func ValidatePossibleFSMOptions

func ValidatePossibleFSMOptions(options *FSMRawOptions, basePath string) (*FSMOptions, error)

type FSMRawOptions

type FSMRawOptions struct {
	PFDPath                              string `json:"pfd,omitempty"`
	ShortPFDPath                         string `json:"-"`
	AtomicProcessTablePath               string `json:"atomic_process_table,omitempty"`
	ShortAtomicProcessTablePath          string `json:"-"`
	AtomicDeliverableTablePath           string `json:"atomic_deliverable_table,omitempty"`
	ShortAtomicDeliverableTablePath      string `json:"-"`
	CompositeProcessTablePath            string `json:"composite_process_table,omitempty"`
	ShortCompositeProcessTablePath       string `json:"-"`
	CompositeDeliverableTablePath        string `json:"composite_deliverable_table,omitempty"`
	ShortCompositeDeliverableTablePath   string `json:"-"`
	ResourceTablePath                    string `json:"resource_table,omitempty"`
	ShortResourceTablePath               string `json:"-"`
	MilestoneTablePath                   string `json:"milestone_table,omitempty"`
	ShortMilestoneTablePath              string `json:"-"`
	GroupTablePath                       string `json:"group_table,omitempty"`
	ShortGroupTablePath                  string `json:"-"`
	MaximalAvailableAllocationsThreshold int    `json:"maximal_available_allocations_threshold,omitempty"`
	ResourceMode                         string `json:"resource_mode,omitempty"`
	FeedbackMode                         string `json:"feedback_mode,omitempty"`
}

func ReadFSMRawOptions

func ReadFSMRawOptions(configShortPath *string, configLongPath *string, cliOptions FSMRawOptions, cwd string) (FSMRawOptions, string, error)

func (FSMRawOptions) Absolutize

func (options FSMRawOptions) Absolutize(basePath string) FSMRawOptions

type FileOutput

type FileOutput struct {
	Path    string
	Content []byte
}

func BuildFileOutput

func BuildFileOutput(path string, build func(out io.Writer) error) (FileOutput, error)

type NoticeModule

type NoticeModule struct {
	Path    string
	Version string
}

func MissingNoticeModules

func MissingNoticeModules(modules []NoticeModule, notices string) []NoticeModule

func ParseModuleList

func ParseModuleList(output string) []NoticeModule

type PFDOptions

type PFDOptions struct {
	PFDReader                       io.Reader
	CompositeDeliverableTableReader io.Reader
}

type PlanOutputFormat

type PlanOutputFormat string
const (
	PlanOutputFormatGoogleSpreadsheetTSV PlanOutputFormat = "google-spreadsheet-tsv"
	PlanOutputFormatPlanJSON             PlanOutputFormat = "plan-json"
	PlanOutputFormatTimelineJSON         PlanOutputFormat = "timeline-json"
	PlanOutputFormatMermaid              PlanOutputFormat = "mermaid"
	PlanOutputFormatPlantUML             PlanOutputFormat = "plantuml"
)

type PlanOutputFormatRawOptions

type PlanOutputFormatRawOptions struct {
	OutputFormat    string `json:"output_format,omitempty"`
	EmphasisTSVPath string `json:"emphasis_tsv_path,omitempty"`

	BusinessTimeFuncRawOptions
}

type ProjectConfig

type ProjectConfig struct {
	FSMRawOptions
	PlanOutputFormatRawOptions

	PlanPath string `json:"plan,omitempty"`

	ExplicitBusinessTimeFlags []string `json:"-"`

	ExplicitEmphasisTSVFlag bool `json:"-"`
}

func ReadProjectConfig

func ReadProjectConfig(
	configShortPath *string,
	configLongPath *string,
	cliFSMOptions FSMRawOptions,
	cliPlanOutputOptions PlanOutputFormatRawOptions,
	cwd string,
	flags *flag.FlagSet,
) (ProjectConfig, string, error)

type ProjectLayout

type ProjectLayout struct {
	PFDPath                   string
	AtomicProcessTable        string
	AtomicDeliverableTable    string
	CompositeDeliverableTable string
	ResourceTable             string
	MilestoneTable            string
	GroupTable                string
}

func DefaultProjectLayout

func DefaultProjectLayout(pfdPath string) ProjectLayout

func (ProjectLayout) FSMRawOptions

func (l ProjectLayout) FSMRawOptions(model execmodel.Model) FSMRawOptions

type SearchQualityPreset

type SearchQualityPreset string
const (
	SearchQualityPresetSmall   SearchQualityPreset = "s"
	SearchQualityPresetMedium  SearchQualityPreset = "m"
	SearchQualityPresetLarge   SearchQualityPreset = "l"
	SearchQualityPresetXLarge  SearchQualityPreset = "xl"
	SearchQualityPresetXXLarge SearchQualityPreset = "xxl"
	SearchQualityPresetCustom  SearchQualityPreset = "custom"
	SearchQualityPresetDefault SearchQualityPreset = "default"
)

func (SearchQualityPreset) Quality

func (q SearchQualityPreset) Quality(randomSeed int64) fsm.Quality

func (SearchQualityPreset) String

func (q SearchQualityPreset) String() string

type SearchRawOptions

type SearchRawOptions struct {
	Best    bool
	Better  bool
	Poor    bool
	Poorest bool

	QualityPreset string

	Quality fsm.Quality
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL