From 538832be81691ecb9de677f2071f5e5105c0d791 Mon Sep 17 00:00:00 2001 From: Martyn Ranyard Date: Thu, 13 Aug 2026 08:38:19 +0200 Subject: [PATCH] first commit --- .gitignore | 1 + cmd/overlayneaten/main.go | 36 ++++++++++++++++++++++++++++++++++++ scripts/script.sh | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 .gitignore create mode 100644 cmd/overlayneaten/main.go create mode 100644 scripts/script.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7989539 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +examplefolder \ No newline at end of file diff --git a/cmd/overlayneaten/main.go b/cmd/overlayneaten/main.go new file mode 100644 index 0000000..036762c --- /dev/null +++ b/cmd/overlayneaten/main.go @@ -0,0 +1,36 @@ +package main + +import ( + "os" + "fmt" + "path/filepath" +) + +func DirSize(path string) (int64, error) { + var size int64 + err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if !info.IsDir() { + size += info.Size() + } + return err + }) + return size, err +} + +func main() { + bytes,_ := DirSize(".") + if bytes < 1024 { + fmt.Println("Directory size:", bytes, "bytes") + } else if bytes < 1024*1024 { + fmt.Println("Directory size:", bytes/1024, "kbytes") + } else if bytes < 1024*1024*1024 { + fmt.Println("Directory size:", bytes/1024/1024, "mbytes") + } else if bytes < 1024*1024*1024*1024 { + fmt.Println("Directory size:", bytes/1024/1024/1024, "mbytes") + } else { + fmt.Println("Directory size:", bytes/1024/1024/1024/1024, "gbytes") + } +} \ No newline at end of file diff --git a/scripts/script.sh b/scripts/script.sh new file mode 100644 index 0000000..e2d2f01 --- /dev/null +++ b/scripts/script.sh @@ -0,0 +1,32 @@ +#!/bin/bash +SCRIPTDIR=`dirname $(realpath $0)` +DEFAULTEXAMPLEFOLDER=${SCRIPTDIR}/../examplefolder +EXAMPLEFOLDER=$(realpath ${1:-$DEFAULTEXAMPLEFOLDER}) +mkdir -p $EXAMPLEFOLDER 2>/dev/null +if [ ! -f lower1/Jan/01 ]; then + mkdir $EXAMPLEFOLDER/lower1 + mkdir $EXAMPLEFOLDER/lower2 + mkdir $EXAMPLEFOLDER/upper + mkdir $EXAMPLEFOLDER/merged + mkdir $EXAMPLEFOLDER/workdir + for month in 01-Jan 02-Feb 03-Mar 04-Apr; do + mkdir $EXAMPLEFOLDER/lower1/$month; for day in `seq -w 01 03`; do + dd if=/dev/urandom of=$EXAMPLEFOLDER/lower1/$month/$day bs=1M count=1 + done + done + for month in 05-May 06-Jun 07-Jul 08-Aug; do + mkdir $EXAMPLEFOLDER/lower2/$month; for day in `seq -w 01 03`; do + dd if=/dev/urandom of=$EXAMPLEFOLDER/lower2/$month/$day bs=1M count=1 + done + done +fi +if ! mount | grep 'examplefolder/merged'; then + sudo mount -t overlay overlay $EXAMPLEFOLDER/merged -olowerdir=$EXAMPLEFOLDER/lower1:$EXAMPLEFOLDER/lower2,upperdir=$EXAMPLEFOLDER/upper,workdir=$EXAMPLEFOLDER/workdir +fi +if [ ! -f $EXAMPLEFOLDER/merged/09-Sep ]; then + for month in 09-Sep 10-Oct 11-Nov 12-Dec; do + mkdir $EXAMPLEFOLDER/merged/$month; for day in `seq -w 01 03`; do + dd if=/dev/urandom of=$EXAMPLEFOLDER/merged/$month/$day bs=1M count=1 + done + done +fi \ No newline at end of file