init commit
This commit is contained in:
69
internal/cmd/cmd.go
Normal file
69
internal/cmd/cmd.go
Normal file
@@ -0,0 +1,69 @@
|
||||
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) {
|
||||
}
|
||||
Reference in New Issue
Block a user