summaryrefslogtreecommitdiff
path: root/doc/snippets
diff options
context:
space:
mode:
Diffstat (limited to 'doc/snippets')
-rw-r--r--doc/snippets/tutorial.scm53
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/snippets/tutorial.scm b/doc/snippets/tutorial.scm
new file mode 100644
index 0000000..bbe8575
--- /dev/null
+++ b/doc/snippets/tutorial.scm
@@ -0,0 +1,53 @@
+(use-modules (gnu)
+ (gnu packages autotools)
+ (gnu packages gawk)
+ (gnu packages guile)
+ (gnu packages pkg-config)
+ (gnu packages version-control)
+ (gnu services ci)
+ (forge forge)
+ (forge laminar)
+ (forge utils))
+
+(define guile-json-tests
+ (with-imported-modules '((guix build utils))
+ (with-packages (list autoconf automake coreutils
+ gawk git-minimal gnu-make grep
+ guile-3.0 sed pkg-config)
+ #~(begin
+ (use-modules (guix build utils))
+ (invoke "git" "clone" "/srv/git/guile-json" ".")
+ (invoke "autoreconf" "--verbose" "--install" "--force")
+ (invoke "./configure")
+ (invoke "make")
+ (invoke "make" "check")))))
+
+(define guile-json-project
+ (forge-project
+ (name "guile-json")
+ (user "vetri")
+ (repository "/srv/git/guile-json")
+ (description "JSON module for Guile")
+ (ci-jobs (list (forge-laminar-job
+ (name "guile-json")
+ (run guile-json-tests))))))
+
+(operating-system
+ (host-name "tutorial")
+ (timezone "UTC")
+ (bootloader (bootloader-configuration
+ (bootloader grub-bootloader)))
+ (file-systems %base-file-systems)
+ (users (cons* (user-account
+ (name "vetri")
+ (group "users")
+ (home-directory "/home/vetri"))
+ %base-user-accounts))
+ (packages %base-packages)
+ (services (cons* (service forge-service-type
+ (forge-configuration
+ (projects (list guile-json-project))))
+ (service laminar-service-type
+ (laminar-configuration
+ (bind-http "localhost:8080")))
+ %base-services)))