diff --git a/tool/net/demo/.init.lua b/tool/net/demo/.init.lua index 19bf04366..304d0f89a 100644 --- a/tool/net/demo/.init.lua +++ b/tool/net/demo/.init.lua @@ -9,35 +9,16 @@ HidePath('/usr/share/ssl/') -- LaunchBrowser('/tool/net/demo/index.html') -- sql database (see sql.lua) -function StoreSqlite(database, path) - local buffer = database:serialize() - return StoreAsset(path, buffer) -end - -function LoadSqlite(path) - local database = sqlite3.open_memory() - local buffer = LoadAsset(path) - database:deserialize(buffer) - return database -end - -database = "database.sqlite3" --- Check if there is already a database -if GetAssetSize(database) ~= nil then - db = LoadSqlite(database) - db:exec[[ - INSERT INTO test (content) VALUES ('World'); - ]] -else - db = sqlite3.open_memory() - db:exec[[ - CREATE TABLE test ( - id INTEGER PRIMARY KEY, - content TEXT - ); - INSERT INTO test (content) VALUES ('Hello'); - ]] -end +db = sqlite3.open_memory() +db:exec[[ + CREATE TABLE test ( + id INTEGER PRIMARY KEY, + content TEXT + ); + INSERT INTO test (content) VALUES ('Hello World'); + INSERT INTO test (content) VALUES ('Hello Lua'); + INSERT INTO test (content) VALUES ('Hello Sqlite3'); +]] -- this intercepts all requests if it's defined function OnHttpRequest() @@ -54,11 +35,6 @@ function OnHttpRequest() SetHeader('Server', 'redbean!') end -function OnServerStop() - -- make sure we store the database on exit - StoreSqlite(db, database) -end - function Adder(x, y) return x + y end diff --git a/tool/net/demo/sql-backup.lua b/tool/net/demo/sql-backup.lua new file mode 100644 index 000000000..e8dea9f54 --- /dev/null +++ b/tool/net/demo/sql-backup.lua @@ -0,0 +1,13 @@ +if GetAssetSize("backup.sqlite3") == nil then + Write("no backup exists. call sql-backupstore.lua first.") + return +end + +backup = sqlite3.open_memory() +buffer = LoadAsset("backup.sqlite3") +backup:deserialize(buffer) + +-- See .init.lua for CREATE TABLE setup. +for row in backup:nrows("SELECT * FROM test") do + Write(row.id.." "..row.content.."
") +end \ No newline at end of file diff --git a/tool/net/demo/sql-backupstore.lua b/tool/net/demo/sql-backupstore.lua new file mode 100644 index 000000000..e99bd0010 --- /dev/null +++ b/tool/net/demo/sql-backupstore.lua @@ -0,0 +1,4 @@ +buffer = db:serialize() +StoreAsset("backup.sqlite3", buffer) + +Write("backup created. size: "..GetAssetSize("backup.sqlite3")) \ No newline at end of file diff --git a/tool/net/net.mk b/tool/net/net.mk index e6460106e..00cbd38c0 100644 --- a/tool/net/net.mk +++ b/tool/net/net.mk @@ -167,6 +167,8 @@ o/tinylinux/tool/net/redbean.com: \ o/$(MODE)/tool/net/demo/.init.lua.zip.o \ o/$(MODE)/tool/net/demo/.reload.lua.zip.o \ o/$(MODE)/tool/net/demo/sql.lua.zip.o \ +o/$(MODE)/tool/net/demo/sql-backup.lua.zip.o \ +o/$(MODE)/tool/net/demo/sql-backupstore.lua.zip.o \ o/$(MODE)/tool/net/demo/unix-rawsocket.lua.zip.o \ o/$(MODE)/tool/net/demo/unix-subprocess.lua.zip.o \ o/$(MODE)/tool/net/demo/unix-webserver.lua.zip.o \ @@ -215,6 +217,8 @@ o/$(MODE)/tool/net/redbean-demo.com.dbg: \ o/$(MODE)/tool/net/largon2.o \ o/$(MODE)/tool/net/net.pkg \ o/$(MODE)/tool/net/demo/sql.lua.zip.o \ + o/$(MODE)/tool/net/demo/sql-backup.lua.zip.o \ + o/$(MODE)/tool/net/demo/sql-backupstore.lua.zip.o \ o/$(MODE)/tool/net/demo/unix-rawsocket.lua.zip.o \ o/$(MODE)/tool/net/demo/unix-subprocess.lua.zip.o \ o/$(MODE)/tool/net/demo/unix-webserver.lua.zip.o \