Newer
Older
sisyphe-go / README.md
![sisyphe](./docs/logo-sisyphe.jpg)

## Sisyphe-GO

Sisyphe is a generic Golang recursive folder analyser terminal application

![Sisyphe-pic](./docs/sisyphe.gif)

### Requirements

Tested with Golang 1.18

Works on Linux/OSX/Windows

Créer et renseigner les variables d’environnement suivantes sur la machine hôte
WORK 
CORPUS_RESOURCES 
SISYPHE_OUT 
ELASTIC_URL
ELASTIC_PORT
KIBANA_PORT
UID=$(id -u)
GID=$(id -g)


### Execution

Analyse générique
```bash
docker-compose up -d
docker exec -t sisyphe_go_go_1 go run . -n corpusName -p corpusPath -o outputPath
```

Analyse détaillée
```bash
docker exec -t sisyphe_go_go_1 go run . -n corpusName -c corpusResourcesPath -p corpusPath -o outputPath
```

Exemple:
```bash
docker exec -t sisyphe-go_go_1 go run . -n karger-ebooks-2022-08-08-detaillee -c /corpus-resources -p /work/sample/karger_2020_11_06
```

Par défaut le programme va écrire ses résultats dans SISYPHE_OUT


### Install it on local

1. Download the latest Sisyphe-go version
2. Just do : `go build .`
3. ... that's it.

### Help

`go run . --help` Will output help

### Options

    --help      Output usage
    -c          Configuration folder path
    -n          Corpus name (default "test")
    -o          Output directory where results are written
    -p          Corpus path
    -w          Counting word on pdf
    -noindex    Disable indexation after process

### How it works ?

Just start Sisyphe on a folder with any files in it.

`go run . ~/Documents/customfolder/corpus -n corpusname -o outputpath`

`go run . ~/Documents/customfolder/corpus -n corpusname -c ~/Documents/customfolder/corpusResources -o outputpath`

Sisyphe is now working in background with all your computer thread.
Just take a coffee and wait , it will prevent you when it's done :)

The results of sisyphe are present @ `sisyphe/out/{timestamp}-corpusName/` (errors,info,duration..)

### Test

Just run
`go test`

For cover
`go test -cover`

### Modules

- PDF
    Usage of poppler lib (`pdftotext` and `pdfinfo`)
- XML
    Usage of xml lib (`xmlstarlet` and `xmllint`)