Bug fix: Dont destroy entire DB when loading app

This commit is contained in:
Netscape Navigator 2020-03-13 22:34:29 -05:00
parent 05480b03e5
commit 3da232ba79
2 changed files with 31 additions and 31 deletions

View File

@ -3,7 +3,7 @@ require "pstore"
module Pigeon
class Storage
def self.reset
@current.reset_defaults if @current
@current.bootstrap if @current
@current = nil
end
@ -103,14 +103,14 @@ module Pigeon
end
end
def reset_defaults
def bootstrap
store.transaction do
store[DEPTH_INDEX_NS] = {}
store[BLOB_NS] = {}
store[CONF_NS] = {}
store[MESG_NS] = {}
store[BLCK_NS] = Set.new
store[PEER_NS] = Set.new
store[DEPTH_INDEX_NS] ||= {}
store[BLOB_NS] ||= {}
store[CONF_NS] ||= {}
store[MESG_NS] ||= {}
store[BLCK_NS] ||= Set.new
store[PEER_NS] ||= Set.new
end
store
end
@ -122,7 +122,7 @@ module Pigeon
return @store
else
@store = PStore.new(PIGEON_DB_PATH)
reset_defaults
bootstrap
end
end

View File

@ -46,35 +46,35 @@ echo "...string via pipe"
echo "my_value" | ./pigeon-cli draft append key1
# echo "...string with no quotes"
# ./pigeon-cli draft append key2 my_value2
echo "...string with no quotes"
./pigeon-cli draft append key2 my_value2
# echo "...string with quotes"
# ./pigeon-cli draft append key3 "my_value3"
echo "...string with quotes"
./pigeon-cli draft append key3 "my_value3"
# echo "...draft ID"
# ./pigeon-cli draft append key4 \%jvKh9yoiEJaePzoWCF1nnqpIlPgTk9FHEtqczQbvzGM=.sha256
echo "...draft ID"
./pigeon-cli draft append key4 \%jvKh9yoiEJaePzoWCF1nnqpIlPgTk9FHEtqczQbvzGM=.sha256
# echo "...blob"
# ./pigeon-cli draft append key5 \&29f3933302c49c60841d7620886ce54afc68630242aee6ff683926d2465e6ca3.sha256
echo "...blob"
./pigeon-cli draft append key5 \&29f3933302c49c60841d7620886ce54afc68630242aee6ff683926d2465e6ca3.sha256
# echo "...identity"
# ./pigeon-cli draft append key6 \@galdahnB3L2DE2cTU0Me54IpIUKVEgKmBwvZVtWJccg=.ed25519
echo "...identity"
./pigeon-cli draft append key6 \@galdahnB3L2DE2cTU0Me54IpIUKVEgKmBwvZVtWJccg=.ed25519
# echo "== show draft"
# ./pigeon-cli draft show
echo "== show draft"
./pigeon-cli draft show
# echo "== sign (publish, save, commit, etc) draft"
# ./pigeon-cli draft sign
echo "== sign (publish, save, commit, etc) draft"
./pigeon-cli draft sign
# echo "=== add a second draft to the db"
# ./pigeon-cli draft create second_test
echo "=== add a second draft to the db"
./pigeon-cli draft create second_test
# echo "=== append hello:'world' to draft:"
# ./pigeon-cli draft append hello "world"
echo "=== append hello:'world' to draft:"
./pigeon-cli draft append hello "world"
# echo "=== Sign draft #2"
# ./pigeon-cli draft sign
echo "=== Sign draft #2"
./pigeon-cli draft sign
# echo "=== getting status:"
# ./pigeon-cli status
echo "=== getting status:"
./pigeon-cli status