aboutsummaryrefslogtreecommitdiff
path: root/gen-examples.sh
diff options
context:
space:
mode:
authorJorge Aparicio <jorge@japaric.io>2017-07-20 22:53:44 -0500
committerJorge Aparicio <jorge@japaric.io>2017-07-20 22:53:44 -0500
commitc7b9507a57f2ba28c18b15dd2719a1c56f74a302 (patch)
tree1fed754475cdbe4baf0d2f1445ce2777b437de31 /gen-examples.sh
parent23425f2f0645cdfbf78135848fe87f733072ade3 (diff)
`Resource` trait, docs, examples and rtfm-syntax related changes
Diffstat (limited to 'gen-examples.sh')
-rw-r--r--gen-examples.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/gen-examples.sh b/gen-examples.sh
new file mode 100644
index 0000000..d053c95
--- /dev/null
+++ b/gen-examples.sh
@@ -0,0 +1,55 @@
+# Converts the examples in the `examples` directory into documentation in the
+# `examples` module (`src/examples/*.rs`)
+
+set -ex
+
+main() {
+ local examples=(
+ zero-tasks
+ one-task
+ two-tasks
+ preemption
+ nested
+ generics
+ full-syntax
+ )
+
+ rm -rf src/examples
+
+ mkdir src/examples
+
+ cat >src/examples/mod.rs <<'EOF'
+//! Examples
+// Auto-generated. Do not modify.
+EOF
+
+ local i=0 out=
+ for ex in ${examples[@]}; do
+ name=_${i}_${ex//-/_}
+ out=src/examples/${name}.rs
+
+ echo "pub mod $name;" >> src/examples/mod.rs
+
+ grep '//!' examples/$ex.rs > $out
+ echo '//!' >> $out
+ echo '//! ```' >> $out
+ grep -v '//!' examples/$ex.rs | (
+ IFS=''
+
+ while read line; do
+ echo "//! $line" >> $out;
+ done
+ )
+ echo '//! ```' >> $out
+ echo '// Auto-generated. Do not modify.' >> $out
+
+
+ chmod -x $out
+
+ i=$(( i + 1 ))
+ done
+
+ chmod -x src/examples/mod.rs
+}
+
+main