From 46241da795cfdcfdc342bc91df9d4665bf047c05 Mon Sep 17 00:00:00 2001
From: Norman Feske <norman.feske@genode-labs.com>
Date: Tue, 26 Jun 2018 15:36:01 +0200
Subject: [PATCH] Runtime for saving copies of Sculpt's report fs

Fixes #2849
---
 .../recipes/pkg/sculpt-installation/archives  |  1 +
 repos/gems/run/sculpt.run                     | 11 +++++
 repos/ports/recipes/pkg/report_dump/README    |  2 +
 repos/ports/recipes/pkg/report_dump/archives  |  7 +++
 repos/ports/recipes/pkg/report_dump/hash      |  1 +
 repos/ports/recipes/pkg/report_dump/runtime   | 45 +++++++++++++++++++
 6 files changed, 67 insertions(+)
 create mode 100644 repos/ports/recipes/pkg/report_dump/README
 create mode 100644 repos/ports/recipes/pkg/report_dump/archives
 create mode 100644 repos/ports/recipes/pkg/report_dump/hash
 create mode 100644 repos/ports/recipes/pkg/report_dump/runtime

diff --git a/repos/gems/recipes/pkg/sculpt-installation/archives b/repos/gems/recipes/pkg/sculpt-installation/archives
index f53136077b..66dff20df7 100644
--- a/repos/gems/recipes/pkg/sculpt-installation/archives
+++ b/repos/gems/recipes/pkg/sculpt-installation/archives
@@ -11,3 +11,4 @@ _/pkg/themed_wm
 _/pkg/sticks_blue_backdrop
 _/pkg/nano3d
 _/pkg/fonts_fs
+_/pkg/report_dump
diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run
index ff1cfeb35d..3872fc4267 100644
--- a/repos/gems/run/sculpt.run
+++ b/repos/gems/run/sculpt.run
@@ -691,6 +691,17 @@ append manual_deploy_config {
 	</start>
 -->
 
+<!--
+	<start name="report_dump" pkg="} [depot_user]/pkg/[current_pkg report_dump] {">
+		<route>
+			<service name="File_system" label="report">
+				<parent label="report"/> </service>
+			<service name="File_system" label="target">
+				<child name="default_fs_rw"/> </service>
+		</route>
+	</start>
+	-->
+
 </config>}
 
 set fd [open [run_dir]/genode/manual_deploy.config w]
diff --git a/repos/ports/recipes/pkg/report_dump/README b/repos/ports/recipes/pkg/report_dump/README
new file mode 100644
index 0000000000..1bd6c796a9
--- /dev/null
+++ b/repos/ports/recipes/pkg/report_dump/README
@@ -0,0 +1,2 @@
+A subsystem that periodically copies Sculpt's report file system to the
+default file system.
diff --git a/repos/ports/recipes/pkg/report_dump/archives b/repos/ports/recipes/pkg/report_dump/archives
new file mode 100644
index 0000000000..861ef1d96f
--- /dev/null
+++ b/repos/ports/recipes/pkg/report_dump/archives
@@ -0,0 +1,7 @@
+_/src/noux
+_/src/bash-minimal
+_/src/coreutils
+_/src/libc
+_/src/posix
+_/src/init
+_/src/vfs
diff --git a/repos/ports/recipes/pkg/report_dump/hash b/repos/ports/recipes/pkg/report_dump/hash
new file mode 100644
index 0000000000..4c6820d755
--- /dev/null
+++ b/repos/ports/recipes/pkg/report_dump/hash
@@ -0,0 +1 @@
+2018-06-18 d22c8cc52bec27c129a4b7844f93d4149f4a93db
diff --git a/repos/ports/recipes/pkg/report_dump/runtime b/repos/ports/recipes/pkg/report_dump/runtime
new file mode 100644
index 0000000000..b2a361478c
--- /dev/null
+++ b/repos/ports/recipes/pkg/report_dump/runtime
@@ -0,0 +1,45 @@
+<runtime ram="50M" caps="1000" binary="noux">
+
+	<requires>
+		<timer/>
+		<file_system label="report" writeable="no"/>
+		<file_system label="target" writeable="yes"/>
+	</requires>
+
+	<config stdin="/dev/null" stdout="/dev/log" stderr="/dev/log">
+		<fstab>
+			<tar name="bash-minimal.tar" />
+			<tar name="coreutils.tar" />
+			<dir name="dev"> <zero/> <null/> <log/> </dir>
+			<dir name="rw">     <fs label="target"/> </dir>
+			<dir name="report"> <fs label="report"/> </dir>
+			<dir name="tmp"> <ram /> </dir>
+			<inline name=".bash_profile">
+				while true; do
+					export VERSION=`printf "%(%T)T"`
+					mkdir "/rw/$VERSION"
+					cp -r /report/* "/rw/$VERSION/"
+					sleep 10
+				done
+			</inline>
+		</fstab>
+		<start name="/bin/bash">
+			<arg value="--login" />
+			<env name="HOME" value="/" />
+			<env name="TERM" value="screen" />
+		</start>
+	</config>
+
+	<content>
+		<rom label="ld.lib.so"/>
+		<rom label="libc.lib.so"/>
+		<rom label="libm.lib.so"/>
+		<rom label="noux"/>
+		<rom label="libc_noux.lib.so"/>
+		<rom label="posix.lib.so"/>
+		<rom label="bash-minimal.tar"/>
+		<rom label="coreutils.tar"/>
+		<rom label="vfs.lib.so"/>
+	</content>
+
+</runtime>