70 lines
3.6 KiB
Go
70 lines
3.6 KiB
Go
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) {
|
||
}
|