Inseki is an Open-Source tool designed for discovering and analyzing project structures within a disk. It scans directories and represents the structure of each project in JSON format.
👷 It is currently under development and is not yet ready for production use.
This project is now working ! You can use it to scan your disk and see the results.
The project is built using the following technology:
Back-End
- 🚀 Scan directories to discover project structures
- 🗂 Represent project structures in JSON format
To get a local copy up and running, follow these steps.
In order to run this project you need:
Clone this repository to your desired folder:
cd my-folder
git clone [email protected]:ForkBench/Inseki-Core.git
Build the project using the following command:
go build
To run it, execute the following command:
./inseki-core
You'll have to put structures into ~/.inseki
directory to see the results.
To run the project, execute the following command:
go run .
A config :
File located at : ~/.inseki/.insekiignore
to avoid some folders.
node_modules
.bun
.local
.git
.idea
.vscode
pkg
libraries
File located at : ~/.inseki/structures/C-programming/projects.json
to define some C projects.
{
"name": "*",
"isDirectory": true,
"children": [
{
"name": "src",
"isDirectory": true,
"children": [
{
"name": "*.c",
"isDirectory": false
}
]
},
{
"name": "lib",
"isDirectory": true,
"children": [
{
"name": "*.h",
"isDirectory": false
}
]
}
]
}
Example of output :
$ go run .
Number of structures analysed: 3
Number of files analysed: 13739
Filepath: .../courses/S1/C/TP-Temp/TP1 - Outils/Part2/teZZt.h, Structure: lab.json
Filepath: .../revisions-c/Exercice/Tri insertion/main.h, Structure: lab.json
Filepath: .../revisions-c/Exercice/Tri insertion/main.c, Structure: lab.json
Filepath: .../courses/S1/C/TP-Temp/TP1 - Outils/Part2/exemple.c, Structure: lab.json
...
- Add a structure library for common project types
- Add go routines for faster scanning
- Add a way to ignore some folders
- Add advanced filtering options for project discovery
- Implement a graphical interface for easier interaction
- Remove multiple scan of files (if a project is composed with n files, it will scan and validate n times)
- Test more the project
This project is GNU licensed.