Files
MFTECmd-for-Linux/internal/cmd/cmd.go
Grigoryev Ilya Alekseevich c28cb8d48a init commit
2026-03-31 01:08:22 +05:00

70 lines
3.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package cmd
import (
"os"
"github.com/fred1268/go-clap/clap"
)
// Перечень флагов
type Config struct {
InputFile string `clap:"trailing,mandatory"` // Входящий файл $MFT, $J, $LogFile, $Boot, $SDS
FileFormat string `clap:"--format,-F,mandatory"` // Формат выходного файла JSON, CSV, bodyfile. По умолчанию CSV
OutputDirectory string `clap:"--output,-o,mandatory"` // Путь выходного файла
DiskLetter string `clap:"--disk-later,-bdl"` // Буква диска для bodyfile
LineFeed bool `clap:"--line-feed,-blf"` // Используемый конец строки bodyfile. true - LF, false - CRLF. По умолчанию false
// TODO: Найти описание аргументов
DD string `clap:"-dd"` // -dd
DO string `clap:"-do"` // -do
DE string `clap:"-de"` // -de
FLS bool `clap:"-fls"` // -fls
SecurityIdentifier bool `clap:"--security-identifier,-ds"` // Выводит полные детали для идентификатора безопасности в десятичном или шестнадцатеричном виде
DatetimeFormat string `clap:"--date-format,-dt"` // Формат даты и времени. По умолчанию yyyy-MM-dd HH:mm:ss.fffffff
FilenameType bool `clap:"--filename-type,-sn"` // Включает типы имён файлов DOS. По умолчанию false
FileListingBrief bool `clap:"--brief-filelisting,-fl"` // Включает сокращённый список файлов. Используется с CSV
AttributeLabel bool `clap:"--atribute-label,-at"` // Включает все временные метки из атрибута 0x30, а не только когда они отличаются от 0x10. По умолчанию false
VolumeShadowCopy bool `clap:"--volume-shadow-copy,-vss"` // Включает все теневые копии томов, которые существуют на диске. По умолчанию false
Dedup bool `clap:"--dedup"` // Убирает все дубликаты в теневых копиях на основе SHA1. Первый кандидат выигрывает. По умолчанию false
Debug bool `clap:"--debug"` // Вывод дебаг-информации. По умолчанию false
Trace bool `clap:"--trace"` // Вывод информации трассировки. По умолчанию false
}
// Установка значений по умолчанию для параметров
func setDefault() *Config {
cfg := &Config{
FileFormat: "csv",
LineFeed: false,
DatetimeFormat: "yyyy-MM-dd HH:mm:ss.fffffff",
FilenameType: false,
AttributeLabel: false,
VolumeShadowCopy: false,
Dedup: false,
Debug: false,
Trace: false,
}
return cfg
}
// Запуск утилиты
// TODO: Поправить парсинг аргументов из консоли
func Init(args []string) (*clap.Results, error) {
cfg := setDefault() // Импорт параметров по умолчанию
var (
results *clap.Results // Массив результатов
err error
)
// Получение аргументов
if results, err = clap.Parse(args, cfg); err != nil {
return nil, err
}
return results, nil
}
func Run(results *clap.Results) {
}