Restructure repository: organize tools by purpose, create what search tool

- Move single-file tools to tools/ organized by category (security, forensics, data, etc.)
- Move multi-file projects to projects/ (go-tools, puzzlebox, timesketch, rust-tools)
- Move system scripts to scripts/ (proxy, display, setup, windows)
- Organize config files in config/ (shell, visidata, applications)
- Move experimental tools to archive/experimental
- Create 'what' fuzzy search tool with progressive enhancement (ollama->fzf->grep)
- Add initial metadata database for intelligent tool discovery
- Preserve git history using 'git mv' commands
This commit is contained in:
tobias
2025-08-24 19:50:00 +02:00
parent 9518290544
commit 619b0bc432
124 changed files with 1063 additions and 0 deletions

213
restructure_git.sh Executable file
View File

@@ -0,0 +1,213 @@
#!/bin/bash
# Git-aware repository restructuring script
# Uses git mv to preserve file history during reorganization
set -e
echo "=== Git-aware Repository Restructuring ==="
echo "This script will reorganize files using 'git mv' to preserve history"
echo ""
# Check if we're in a git repository
if ! git rev-parse --git-dir > /dev/null 2>&1; then
echo "Warning: Not in a git repository. Using regular 'mv' commands."
MV_CMD="mv"
else
echo "Git repository detected. Using 'git mv' to preserve history."
MV_CMD="git mv"
fi
echo ""
echo "=== Creating new directory structure ==="
# Create new directory structure
mkdir -p tools/{security,forensics,data,hashing,network,formats,cloud,system,ctf,text}
mkdir -p projects/{go-tools,puzzlebox,timesketch,rust-tools}
mkdir -p scripts/{proxy,display,setup,windows}
mkdir -p config/{shell,visidata/plugins,applications}
mkdir -p archive/{collected,experimental,binaries,awk}
echo "=== Moving security tools ==="
$MV_CMD codegrab/scan_vt.py tools/security/
$MV_CMD codegrab/vt_download.py tools/security/
$MV_CMD codegrab/vt_ip.py tools/security/
$MV_CMD codegrab/vt_pdns.py tools/security/
$MV_CMD codegrab/imphash.py tools/security/
$MV_CMD codegrab/scapy_arp.py tools/security/
$MV_CMD codegrab/simple_portscan.py tools/security/
$MV_CMD codegrab/smtpbanner.py tools/security/
$MV_CMD codegrab/testpw.py tools/security/
$MV_CMD codegrab/certwipe tools/security/
echo "=== Moving forensics tools ==="
$MV_CMD codegrab/chechsqlite.py tools/forensics/
$MV_CMD codegrab/process_leak.py tools/forensics/
$MV_CMD codegrab/extractfolder.py tools/forensics/
echo "=== Moving data processing tools ==="
$MV_CMD tools/domgrep.py tools/data/
$MV_CMD tools/geturls.py tools/data/
$MV_CMD tools/urldecode.py tools/data/
$MV_CMD tools/unum.py tools/data/
$MV_CMD codegrab/vba_chr_decode.py tools/data/
$MV_CMD tools/quickchardet.py tools/data/
$MV_CMD codegrab/kv_parse.py tools/data/
$MV_CMD tools/concat.py tools/data/
$MV_CMD tools/split_linewise.py tools/data/
$MV_CMD codegrab/json_save.py tools/data/
$MV_CMD tools/csv_get tools/data/
$MV_CMD codegrab/uniq.py tools/data/
$MV_CMD tools/between tools/data/
echo "=== Moving hashing tools ==="
$MV_CMD tools/libarchivesum.py tools/hashing/
$MV_CMD tools/tarsum.py tools/hashing/
$MV_CMD codegrab/hashzip.py tools/hashing/
$MV_CMD tools/scatterhash.py tools/hashing/
echo "=== Moving network tools ==="
$MV_CMD tools/ipgrep tools/network/
$MV_CMD codegrab/fritzshark.sh tools/network/
$MV_CMD codegrab/fritzshark2.sh tools/network/
$MV_CMD tools/get_stp.sh tools/network/
$MV_CMD tools/get_ntp.py tools/network/
echo "=== Moving format conversion tools ==="
$MV_CMD codegrab/convert2pdf.sh tools/formats/
$MV_CMD codegrab/flatpdf.sh tools/formats/
$MV_CMD tools/rename.mime.py tools/formats/
echo "=== Moving cloud service tools ==="
$MV_CMD codegrab/cloudsend.py tools/cloud/
$MV_CMD codegrab/cloudsend.sh tools/cloud/
$MV_CMD codegrab/speech.py tools/cloud/
$MV_CMD codegrab/vqa3.py tools/cloud/
$MV_CMD codegrab/youtube_resolve.sh tools/cloud/
echo "=== Moving system utilities ==="
$MV_CMD tools/backup_docker.sh tools/system/
$MV_CMD tools/restore_docker.sh tools/system/
$MV_CMD tools/watchgrowth.sh tools/system/
$MV_CMD codegrab/wipe.sh tools/system/
$MV_CMD codegrab/ltop.py tools/system/
echo "=== Moving CTF tools ==="
$MV_CMD codegrab/ctf/filtertext.py tools/ctf/
$MV_CMD codegrab/ctf/getjs.py tools/ctf/
$MV_CMD codegrab/ctf/guess.py tools/ctf/
$MV_CMD codegrab/ctf/search.py tools/ctf/
$MV_CMD codegrab/ctf/transpose.py tools/ctf/
$MV_CMD codegrab/ctf/ps_.py tools/ctf/
$MV_CMD codegrab/ctf/submit_flag.sh tools/ctf/
echo "=== Moving text analysis tools ==="
$MV_CMD codegrab/probability.py tools/text/
$MV_CMD codegrab/depth tools/text/
echo "=== Moving experimental tools to archive ==="
$MV_CMD codegrab/kv.py archive/experimental/
$MV_CMD codegrab/flm.py archive/experimental/
$MV_CMD codegrab/hydrogentest.py archive/experimental/
$MV_CMD codegrab/matplottest.py archive/experimental/
$MV_CMD codegrab/lpic.sh archive/experimental/
$MV_CMD codegrab/fuzz.sh archive/experimental/
echo "=== Moving multi-file projects ==="
$MV_CMD tools/go projects/go-tools
$MV_CMD codegrab/puzzlebox projects/
$MV_CMD codegrab/deploy_timesketch.sh projects/timesketch/
# Move Rust tools if they exist
if [ -d tools/rs ]; then
$MV_CMD tools/rs projects/rust-tools
fi
echo "=== Moving system scripts ==="
$MV_CMD systemscripts/proxy scripts/
$MV_CMD systemscripts/reset_screens.sh scripts/display/
$MV_CMD systemscripts/toggle_display.sh scripts/display/
$MV_CMD systemscripts/toggle_touchpad scripts/display/
$MV_CMD systemscripts/terminal-logs.sh scripts/setup/
$MV_CMD systemscripts/automountctl scripts/setup/
# Move additional system scripts if they exist
[ -f systemscripts/mount_container ] && $MV_CMD systemscripts/mount_container scripts/setup/
[ -f systemscripts/fullhd ] && $MV_CMD systemscripts/fullhd scripts/setup/
[ -f systemscripts/share.sh ] && $MV_CMD systemscripts/share.sh scripts/setup/
echo "=== Moving PowerShell scripts ==="
$MV_CMD codegrab/Get-ZimmermanTools.ps1 scripts/windows/
$MV_CMD codegrab/sbom.ps1 scripts/windows/
if [ -d codegrab/powershell ]; then
$MV_CMD codegrab/powershell/getscreen.psm1 scripts/windows/
fi
echo "=== Organizing configuration files ==="
$MV_CMD config/bash_aliases config/shell/
$MV_CMD config/bash_prompt config/shell/
$MV_CMD config/shell_aliases config/shell/
$MV_CMD config/inputrc config/shell/
$MV_CMD systemscripts/agnoster.zsh-theme config/shell/
$MV_CMD systemscripts/solarized.dircolors config/shell/
$MV_CMD config/visidatarc config/visidata/
$MV_CMD config/visidataplugins/hidecol.py config/visidata/plugins/
[ -f config/access_log.vdj ] && $MV_CMD config/access_log.vdj config/visidata/
# Applications directory should already be in the right place
# Just ensure it exists
mkdir -p config/applications
echo "=== Moving items to archive ==="
$MV_CMD collected archive/
# Move binaries and scripts to archive
[ -f codegrab/csv_cols ] && $MV_CMD codegrab/csv_cols archive/binaries/
[ -f codegrab/mapping ] && $MV_CMD codegrab/mapping archive/binaries/
[ -f tools/csv2dot ] && $MV_CMD tools/csv2dot archive/binaries/
[ -f tools/mailunpack ] && $MV_CMD tools/mailunpack archive/binaries/
[ -f tools/noerr ] && $MV_CMD tools/noerr archive/binaries/
[ -f tools/openflattenpdf.sh ] && $MV_CMD tools/openflattenpdf.sh archive/binaries/
[ -f tools/sep_test.sh ] && $MV_CMD tools/sep_test.sh archive/binaries/
[ -f tools/showgm.sh ] && $MV_CMD tools/showgm.sh archive/binaries/
[ -f tools/showosm.sh ] && $MV_CMD tools/showosm.sh archive/binaries/
[ -f tools/sparsecmp.sh ] && $MV_CMD tools/sparsecmp.sh archive/binaries/
[ -f tools/trunc_by_hash.py ] && $MV_CMD tools/trunc_by_hash.py archive/binaries/
# Move AWK scripts
[ -f codegrab/ips.awk ] && $MV_CMD codegrab/ips.awk archive/awk/
[ -f codegrab/map.awk ] && $MV_CMD codegrab/map.awk archive/awk/
# Move any remaining compiled binaries
[ -f codegrab/rootshell.c ] && $MV_CMD codegrab/rootshell.c archive/binaries/
[ -f codegrab/usbreset.c ] && $MV_CMD codegrab/usbreset.c archive/binaries/
[ -f codegrab/imphash.go ] && $MV_CMD codegrab/imphash.go archive/binaries/
echo "=== Cleaning up empty directories ==="
# Remove empty directories (but be careful with git)
if [ "$MV_CMD" = "git mv" ]; then
echo "Leaving directory cleanup for manual review due to git"
else
rmdir codegrab/ctf codegrab/powershell codegrab systemscripts tools config/visidataplugins 2>/dev/null || true
fi
echo ""
echo "=== Repository restructuring complete! ==="
echo ""
echo "New structure:"
echo "├── tools/ - Single-file utilities by purpose"
echo "├── projects/ - Multi-file projects"
echo "├── scripts/ - System management scripts"
echo "├── config/ - Configuration files"
echo "├── dockerfiles/ - Docker configurations (unchanged)"
echo "└── archive/ - Legacy and experimental items"
echo ""
if [ "$MV_CMD" = "git mv" ]; then
echo "All moves used 'git mv' - file history preserved!"
echo "You can review changes with: git status"
echo "Commit when ready with: git commit -m 'Restructure repository for better organization'"
else
echo "Standard 'mv' used - consider initializing git if needed"
fi