Prep better for absolute paths

This commit is contained in:
Josh Hansen 2023-09-30 02:11:10 -07:00
parent 945c423694
commit 5b89b46145
2 changed files with 258 additions and 273 deletions

View file

@ -22,111 +22,107 @@ cd example
set -x
main() {
prefix=$1
# Create a personnel dataset with three people
# The name, ID, and state of residence are known for each person
mkdir people
touch ./people/Sandeep ./people/Sofia ./people/Wulfrum
$GHEE set -s name=Sandeep -s id=2 -s state=CA $prefix/people/Sandeep
$GHEE set -s name=Sofia -s id=1 -s state=WA $prefix/people/Sofia
$GHEE set -s name=Wulfrum -s id=0 -s state=CA $prefix/people/Wulfrum
mkdir $1/people
touch $1/people/Sandeep $1/people/Sofia $1/people/Wulfrum
$GHEE set -s name=Sandeep -s id=2 -s state=CA $1/people/Sandeep
$GHEE set -s name=Sofia -s id=1 -s state=WA $1/people/Sofia
$GHEE set -s name=Wulfrum -s id=0 -s state=CA $1/people/Wulfrum
# Check how Ghee sees the files we just set up
$GHEE get people
$GHEE get $1/people
# Tell Ghee what key the data is indexed by
$GHEE init -k name $prefix/people
$GHEE init -k name $1/people
# Index the dataset by ID
$GHEE idx -v -k id $prefix/people $prefix/people:id
$GHEE idx -v -k id $1/people $1/people:id
# Index the dataset by state and ID, placing the index in the default path
$GHEE idx -v -k state -k id $prefix/people
$GHEE idx -v -k state -k id $1/people
# Add more people to the table and its indices
$GHEE ins -v $prefix/people < ../../people.json
$GHEE ins -v $1/people < $prefix/../people.json
# Get all of ./people, seen as a table
$GHEE get -a $prefix/people
$GHEE get -a $1/people
# # Get all of ./people without sorting in the walk of the folder hierarchy
# ghee get -a --nosort $prefix/people
# Get the name of everybody from California; include all subpaths (don't ignore indices)
$GHEE get -a -w state=CA -f name $prefix/people
$GHEE get -a -w state=CA -f name $1/people
# Remove Sofia
$GHEE del -v $prefix/people -w name=Sofia
$GHEE del -v $1/people -w name=Sofia
# Equivalently: ghee del -v ./people Sofia
# Remove Lilly from the :id index and all related indices
$GHEE del -v $prefix/people:id 3
$GHEE del -v $1/people:id 3
# Equivalently: ghee del -v ./people -w id=3
# Equivalently: ghee del -v ./people Lilly
# Remove Wulfrum from the :state:id index and all related indices
$GHEE del -v $prefix/people/:state:id CA 0
$GHEE del -v $1/people/:state:id CA 0
# Equivalently: ghee del -v ./people -w state=CA -w id=0
# Equivalently: ghee del -v ./people Wulfrum
# Get the name of everybody from California still remaining,
# taking advantage of the state index
# This will avoid traversing irrelevant portions of the index
$GHEE get -a -w state=CA -f name $prefix/people/:state:id
$GHEE get -a -w state=CA -f name $1/people/:state:id
# Create a table directly
$GHEE create -v $prefix/direct -k blah
$GHEE create -v $1/direct -k blah
# Create people2 in one go using `create'
$GHEE create -v $prefix/people2 -k id < ../../people.json
$GHEE create -v $1/people2 -k id < $prefix/../people.json
$GHEE status $prefix/people2
$GHEE status $1/people2
mkdir $prefix/empty
$GHEE status $prefix/empty
$GHEE get empty
$GHEE get -a empty
mkdir $1/empty
$GHEE status $1/empty
$GHEE get $1/empty
$GHEE get -a $1/empty
}
btrfs() {
prefix=$1
$GHEE status $prefix
$GHEE status $1
$GHEE log
$GHEE create -v -k toppings $prefix/pizza
$GHEE create -v -k toppings $1/pizza
$GHEE status $prefix/pizza
$GHEE status $1/pizza
$GHEE touch $prefix/pizza/olive
$GHEE touch $1/pizza/olive
$GHEE status $prefix/pizza
$GHEE status $1/pizza
$GHEE commit -m "Add olive pizza" $prefix/pizza
$GHEE commit -m "Add olive pizza" $1/pizza
$GHEE log $prefix/pizza
$GHEE log $1/pizza
$GHEE status $prefix/pizza
$GHEE status $1/pizza
$GHEE touch $prefix/pizza/pepperoni
$GHEE touch $1/pizza/pepperoni
echo "Olives are good on pizza" > $prefix/pizza/olive
echo "Olives are good on pizza" > $1/pizza/olive
$GHEE set -s yumminess=5 $prefix/pizza/olive
$GHEE set -s yumminess=5 $1/pizza/olive
$GHEE status $prefix/pizza
$GHEE status $1/pizza
$GHEE commit -m "Add pepperoni; add details to olive" $prefix/pizza
$GHEE commit -m "Add pepperoni; add details to olive" $1/pizza
$GHEE status $prefix/pizza
$GHEE status $1/pizza
$GHEE log $prefix/pizza
$GHEE log $1/pizza
cd pizza
$GHEE touch $1/pizza/buffalo-chicken
$GHEE touch buffalo-chicken
pushd $1/pizza
$GHEE status
@ -134,7 +130,7 @@ btrfs() {
$GHEE status
cd ..
popd
}
declare -A PREFIXES
@ -150,36 +146,30 @@ do
dd if=/dev/zero of=$ext4img bs=1M count=400 1> /dev/null 2> /dev/null
mkfs.ext4 -L ext4-$i $ext4img 1> /dev/null 2> /dev/null
mkdir $prefix/ext4
sudo mount -o loop $ext4img ./ext4
cd ext4
sudo chown $OWNER:$OWNER .
sudo mount -o loop $ext4img $prefix/ext4
sudo chown $OWNER:$OWNER $prefix/ext4
main $prefix
main $prefix/ext4
cd ..
sudo umount ./ext4
sudo umount $prefix/ext4
# --- BTRFS ---
## Initial file hierarchy to clone
mkdir ./empty
mkdir $prefix/empty
btrfsimg="$prefix/ghee-btrfs-$i.img"
dd if=/dev/zero of=$btrfsimg bs=1M count=114 1> /dev/null 2> /dev/null
mkfs.btrfs -L btrfs-$i --rootdir ./empty $btrfsimg 1> /dev/null 2> /dev/null
mkdir ./btrfs
sudo mount -o loop $btrfsimg ./btrfs
mkfs.btrfs -L btrfs-$i --rootdir $prefix/empty $btrfsimg 1> /dev/null 2> /dev/null
mkdir $prefix/btrfs
sudo mount -o loop $btrfsimg $prefix/btrfs
cd btrfs
sudo chown $OWNER:$OWNER .
sudo chown $OWNER:$OWNER $prefix/btrfs
main $prefix
main $prefix/btrfs
btrfs $prefix
btrfs $prefix/btrfs
cd ..
sudo umount ./btrfs
sudo umount $prefix/btrfs
# --- /BTRFS ---
done

View file

@ -8,99 +8,96 @@
+ mkfs.ext4 -L ext4-relative ./ghee-ext4-relative.img
+ mkdir ./ext4
+ sudo mount -o loop ./ghee-ext4-relative.img ./ext4
+ cd ext4
+ sudo chown josh:josh .
+ main .
+ prefix=.
+ mkdir people
+ touch ./people/Sandeep ./people/Sofia ./people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA ./people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA ./people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA ./people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee get people
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name ./people
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id ./people ./people:id
./people/Sofia -> ./people:id/1
./people/Wulfrum -> ./people:id/0
./people/Sandeep -> ./people:id/2
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id ./people
./people/Sofia -> ./people/:state:id/WA/1
./people/Wulfrum -> ./people/:state:id/CA/0
./people/Sandeep -> ./people/:state:id/CA/2
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v ./people
Initialized ./people/Janella
Linked ./people:id/3 -> ./people/Janella
Linked ./people/:state:id/FL/3 -> ./people/Janella
Initialized ./people/Lilly
Linked ./people:id/4 -> ./people/Lilly
Linked ./people/:state:id/NM/4 -> ./people/Lilly
Initialized ./people/Darrel
Linked ./people:id/5 -> ./people/Darrel
Linked ./people/:state:id/MI/5 -> ./people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./people
+ sudo chown josh:josh ./ext4
+ main ./ext4
+ mkdir ./ext4/people
+ touch ./ext4/people/Sandeep ./ext4/people/Sofia ./ext4/people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA ./ext4/people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA ./ext4/people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA ./ext4/people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee get ./ext4/people
./ext4/people/Sandeep user.id 2
./ext4/people/Sandeep user.name Sandeep
./ext4/people/Sandeep user.state CA
./ext4/people/Sofia user.id 1
./ext4/people/Sofia user.name Sofia
./ext4/people/Sofia user.state WA
./ext4/people/Wulfrum user.id 0
./ext4/people/Wulfrum user.name Wulfrum
./ext4/people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name ./ext4/people
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id ./ext4/people ./ext4/people:id
./ext4/people/Wulfrum -> ./ext4/people:id/0
./ext4/people/Sandeep -> ./ext4/people:id/2
./ext4/people/Sofia -> ./ext4/people:id/1
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id ./ext4/people
./ext4/people/Wulfrum -> ./ext4/people/:state:id/CA/0
./ext4/people/Sandeep -> ./ext4/people/:state:id/CA/2
./ext4/people/Sofia -> ./ext4/people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v ./ext4/people
Initialized ./ext4/people/Janella
Linked ./ext4/people:id/3 -> ./ext4/people/Janella
Linked ./ext4/people/:state:id/FL/3 -> ./ext4/people/Janella
Initialized ./ext4/people/Lilly
Linked ./ext4/people:id/4 -> ./ext4/people/Lilly
Linked ./ext4/people/:state:id/NM/4 -> ./ext4/people/Lilly
Initialized ./ext4/people/Darrel
Linked ./ext4/people:id/5 -> ./ext4/people/Darrel
Linked ./ext4/people/:state:id/MI/5 -> ./ext4/people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./ext4/people
user.ghee.tableinfo {"key":"name","indices_abs":{"id":"/home/josh/Projects/Ghee/example/ext4/people:id","name":"/home/josh/Projects/Ghee/example/ext4/people","state,id":"/home/josh/Projects/Ghee/example/ext4/people/:state:id"}}
./people/Darrel user.id 5
./people/Darrel user.name Darrel
./people/Darrel user.state MI
./people/Janella user.id 3
./people/Janella user.name Janella
./people/Janella user.state FL
./people/Lilly user.id 4
./people/Lilly user.name Lilly
./people/Lilly user.state NM
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people
./people/Wulfrum user.name Wulfrum
./people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people -w name=Sofia
Removed ./people:id/1
Removed ./people/Sofia
Removed ./people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people:id 3
Removed ./people:id/3
Removed ./people/Janella
Removed ./people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people/:state:id CA 0
Removed ./people:id/0
Removed ./people/Wulfrum
Removed ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people/:state:id
./people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./direct -k blah
Initialized table ./direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./people2 -k id
Initialized table ./people2 with key: user.id
Initialized ./people2/3
Initialized ./people2/4
Initialized ./people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status ./people2
+./people2
+./people2/3
+./people2/4
+./people2/5
+ mkdir ./empty
+ /home/josh/Projects/Ghee/target/debug/ghee status ./empty
./ext4/people/Darrel user.id 5
./ext4/people/Darrel user.name Darrel
./ext4/people/Darrel user.state MI
./ext4/people/Janella user.id 3
./ext4/people/Janella user.name Janella
./ext4/people/Janella user.state FL
./ext4/people/Lilly user.id 4
./ext4/people/Lilly user.name Lilly
./ext4/people/Lilly user.state NM
./ext4/people/Sandeep user.id 2
./ext4/people/Sandeep user.name Sandeep
./ext4/people/Sandeep user.state CA
./ext4/people/Sofia user.id 1
./ext4/people/Sofia user.name Sofia
./ext4/people/Sofia user.state WA
./ext4/people/Wulfrum user.id 0
./ext4/people/Wulfrum user.name Wulfrum
./ext4/people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./ext4/people
./ext4/people/Wulfrum user.name Wulfrum
./ext4/people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./ext4/people -w name=Sofia
Removed ./ext4/people:id/1
Removed ./ext4/people/Sofia
Removed ./ext4/people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./ext4/people:id 3
Removed ./ext4/people:id/3
Removed ./ext4/people/Janella
Removed ./ext4/people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./ext4/people/:state:id CA 0
Removed ./ext4/people:id/0
Removed ./ext4/people/Wulfrum
Removed ./ext4/people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./ext4/people/:state:id
./ext4/people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./ext4/direct -k blah
Initialized table ./ext4/direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./ext4/people2 -k id
Initialized table ./ext4/people2 with key: user.id
Initialized ./ext4/people2/3
Initialized ./ext4/people2/4
Initialized ./ext4/people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status ./ext4/people2
+./ext4/people2
+./ext4/people2/3
+./ext4/people2/4
+./ext4/people2/5
+ mkdir ./ext4/empty
+ /home/josh/Projects/Ghee/target/debug/ghee status ./ext4/empty
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee get empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a empty
+ cd ..
+ /home/josh/Projects/Ghee/target/debug/ghee get ./ext4/empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./ext4/empty
+ sudo umount ./ext4
+ mkdir ./empty
+ btrfsimg=./ghee-btrfs-relative.img
@ -108,143 +105,141 @@ No table found
+ mkfs.btrfs -L btrfs-relative --rootdir ./empty ./ghee-btrfs-relative.img
+ mkdir ./btrfs
+ sudo mount -o loop ./ghee-btrfs-relative.img ./btrfs
+ cd btrfs
+ sudo chown josh:josh .
+ main .
+ prefix=.
+ mkdir people
+ touch ./people/Sandeep ./people/Sofia ./people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA ./people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA ./people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA ./people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee get people
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name ./people
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id ./people ./people:id
./people/Sandeep -> ./people:id/2
./people/Sofia -> ./people:id/1
./people/Wulfrum -> ./people:id/0
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id ./people
./people/Sandeep -> ./people/:state:id/CA/2
./people/Sofia -> ./people/:state:id/WA/1
./people/Wulfrum -> ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v ./people
Initialized ./people/Janella
Linked ./people:id/3 -> ./people/Janella
Linked ./people/:state:id/FL/3 -> ./people/Janella
Initialized ./people/Lilly
Linked ./people:id/4 -> ./people/Lilly
Linked ./people/:state:id/NM/4 -> ./people/Lilly
Initialized ./people/Darrel
Linked ./people:id/5 -> ./people/Darrel
Linked ./people/:state:id/MI/5 -> ./people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./people
+ sudo chown josh:josh ./btrfs
+ main ./btrfs
+ mkdir ./btrfs/people
+ touch ./btrfs/people/Sandeep ./btrfs/people/Sofia ./btrfs/people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA ./btrfs/people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA ./btrfs/people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA ./btrfs/people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee get ./btrfs/people
./btrfs/people/Sandeep user.id 2
./btrfs/people/Sandeep user.name Sandeep
./btrfs/people/Sandeep user.state CA
./btrfs/people/Sofia user.id 1
./btrfs/people/Sofia user.name Sofia
./btrfs/people/Sofia user.state WA
./btrfs/people/Wulfrum user.id 0
./btrfs/people/Wulfrum user.name Wulfrum
./btrfs/people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name ./btrfs/people
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id ./btrfs/people ./btrfs/people:id
./btrfs/people/Sandeep -> ./btrfs/people:id/2
./btrfs/people/Sofia -> ./btrfs/people:id/1
./btrfs/people/Wulfrum -> ./btrfs/people:id/0
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id ./btrfs/people
./btrfs/people/Sandeep -> ./btrfs/people/:state:id/CA/2
./btrfs/people/Sofia -> ./btrfs/people/:state:id/WA/1
./btrfs/people/Wulfrum -> ./btrfs/people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v ./btrfs/people
Initialized ./btrfs/people/Janella
Linked ./btrfs/people:id/3 -> ./btrfs/people/Janella
Linked ./btrfs/people/:state:id/FL/3 -> ./btrfs/people/Janella
Initialized ./btrfs/people/Lilly
Linked ./btrfs/people:id/4 -> ./btrfs/people/Lilly
Linked ./btrfs/people/:state:id/NM/4 -> ./btrfs/people/Lilly
Initialized ./btrfs/people/Darrel
Linked ./btrfs/people:id/5 -> ./btrfs/people/Darrel
Linked ./btrfs/people/:state:id/MI/5 -> ./btrfs/people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./btrfs/people
user.ghee.tableinfo {"key":"name","indices_abs":{"id":"/home/josh/Projects/Ghee/example/btrfs/people:id","name":"/home/josh/Projects/Ghee/example/btrfs/people","state,id":"/home/josh/Projects/Ghee/example/btrfs/people/:state:id"}}
./people/Darrel user.id 5
./people/Darrel user.name Darrel
./people/Darrel user.state MI
./people/Janella user.id 3
./people/Janella user.name Janella
./people/Janella user.state FL
./people/Lilly user.id 4
./people/Lilly user.name Lilly
./people/Lilly user.state NM
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people
./people/Wulfrum user.name Wulfrum
./people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people -w name=Sofia
Removed ./people:id/1
Removed ./people/Sofia
Removed ./people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people:id 3
Removed ./people:id/3
Removed ./people/Janella
Removed ./people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people/:state:id CA 0
Removed ./people:id/0
Removed ./people/Wulfrum
Removed ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people/:state:id
./people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./direct -k blah
Initialized table ./direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./people2 -k id
Initialized table ./people2 with key: user.id
Initialized ./people2/3
Initialized ./people2/4
Initialized ./people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status ./people2
+./people2
+./people2/3
+./people2/4
+./people2/5
+ mkdir ./empty
+ /home/josh/Projects/Ghee/target/debug/ghee status ./empty
./btrfs/people/Darrel user.id 5
./btrfs/people/Darrel user.name Darrel
./btrfs/people/Darrel user.state MI
./btrfs/people/Janella user.id 3
./btrfs/people/Janella user.name Janella
./btrfs/people/Janella user.state FL
./btrfs/people/Lilly user.id 4
./btrfs/people/Lilly user.name Lilly
./btrfs/people/Lilly user.state NM
./btrfs/people/Sandeep user.id 2
./btrfs/people/Sandeep user.name Sandeep
./btrfs/people/Sandeep user.state CA
./btrfs/people/Sofia user.id 1
./btrfs/people/Sofia user.name Sofia
./btrfs/people/Sofia user.state WA
./btrfs/people/Wulfrum user.id 0
./btrfs/people/Wulfrum user.name Wulfrum
./btrfs/people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./btrfs/people
./btrfs/people/Wulfrum user.name Wulfrum
./btrfs/people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./btrfs/people -w name=Sofia
Removed ./btrfs/people:id/1
Removed ./btrfs/people/Sofia
Removed ./btrfs/people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./btrfs/people:id 3
Removed ./btrfs/people:id/3
Removed ./btrfs/people/Janella
Removed ./btrfs/people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./btrfs/people/:state:id CA 0
Removed ./btrfs/people:id/0
Removed ./btrfs/people/Wulfrum
Removed ./btrfs/people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./btrfs/people/:state:id
./btrfs/people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./btrfs/direct -k blah
Initialized table ./btrfs/direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./btrfs/people2 -k id
Initialized table ./btrfs/people2 with key: user.id
Initialized ./btrfs/people2/3
Initialized ./btrfs/people2/4
Initialized ./btrfs/people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs/people2
+./btrfs/people2
+./btrfs/people2/3
+./btrfs/people2/4
+./btrfs/people2/5
+ mkdir ./btrfs/empty
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs/empty
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee get empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a empty
+ btrfs .
+ prefix=.
+ /home/josh/Projects/Ghee/target/debug/ghee status .
+ /home/josh/Projects/Ghee/target/debug/ghee get ./btrfs/empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./btrfs/empty
+ btrfs ./btrfs
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee log
No table found; no log exists
+ /home/josh/Projects/Ghee/target/debug/ghee create -v -k toppings ./pizza
Initialized table ./pizza with key: user.toppings
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+./pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./pizza/olive
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+./pizza
+./pizza/olive
+ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add olive pizza' ./pizza
+ /home/josh/Projects/Ghee/target/debug/ghee log ./pizza
commit dffea10f-ff92-9c41-98c4-66316e245ea9
+ /home/josh/Projects/Ghee/target/debug/ghee create -v -k toppings ./btrfs/pizza
Initialized table ./btrfs/pizza with key: user.toppings
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs/pizza
+./btrfs/pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./btrfs/pizza/olive
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs/pizza
+./btrfs/pizza
+./btrfs/pizza/olive
+ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add olive pizza' ./btrfs/pizza
+ /home/josh/Projects/Ghee/target/debug/ghee log ./btrfs/pizza
commit 67278e12-93b9-714b-a44e-9add2b473c01
Add olive pizza
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./pizza/pepperoni
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs/pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./btrfs/pizza/pepperoni
+ echo 'Olives are good on pizza'
+ /home/josh/Projects/Ghee/target/debug/ghee set -s yumminess=5 ./pizza/olive
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
m./pizza/olive
+./pizza/pepperoni
+ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add pepperoni; add details to olive' ./pizza
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+ /home/josh/Projects/Ghee/target/debug/ghee log ./pizza
commit 92e92c38-e362-a54a-8bd2-eebad3aca3c4
+ /home/josh/Projects/Ghee/target/debug/ghee set -s yumminess=5 ./btrfs/pizza/olive
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs/pizza
m./btrfs/pizza/olive
+./btrfs/pizza/pepperoni
+ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add pepperoni; add details to olive' ./btrfs/pizza
+ /home/josh/Projects/Ghee/target/debug/ghee status ./btrfs/pizza
+ /home/josh/Projects/Ghee/target/debug/ghee log ./btrfs/pizza
commit 55bb1317-fdf8-214f-bd1d-35eafb3de4c9
Add pepperoni; add details to olive
commit dffea10f-ff92-9c41-98c4-66316e245ea9
commit 67278e12-93b9-714b-a44e-9add2b473c01
Add olive pizza
+ cd pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch buffalo-chicken
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./btrfs/pizza/buffalo-chicken
+ pushd ./btrfs/pizza
~/Projects/Ghee/example/btrfs/pizza ~/Projects/Ghee/example
+ /home/josh/Projects/Ghee/target/debug/ghee status
+./buffalo-chicken
+ /home/josh/Projects/Ghee/target/debug/ghee restore .
+ /home/josh/Projects/Ghee/target/debug/ghee status
+ cd ..
+ cd ..
+ popd
~/Projects/Ghee/example
+ sudo umount ./btrfs
+ cd ..