Compare commits

..

3 commits

Author SHA1 Message Date
e847014d81 Add examples to the hall documentation section
This way when I run ‘hall clean -x’ I don't have to keep resurrecting the file.
2023-07-07 00:03:18 -07:00
97e3757498 Add distribution file
This file can be used either with ‘guix shell -D --file=guix.scm’ or to install
the package from source:

  hall build -x
  autoreconv -ivf
  ./configure
  make dist
  guix shell -f guix.scm
2023-07-06 23:58:48 -07:00
2395878248 Restructure project as suggested by running ‘hall init --convert’ 2023-07-06 23:30:24 -07:00
8 changed files with 171 additions and 2 deletions

3
COPYING Normal file
View file

@ -0,0 +1,3 @@
This project's license is GPL 3+.
You can read the full license at https://www.gnu.org/licenses/gpl.html.

47
HACKING Normal file
View file

@ -0,0 +1,47 @@
# -*- mode: org; coding: utf-8; -*-
#+TITLE: Hacking inkplate
* Contributing
By far the easiest way to hack on inkplate is to develop using Guix:
#+BEGIN_SRC bash
# Obtain the source code
cd /path/to/source-code
guix environment -l guix.scm
# In the new shell, run:
hall dist --execute && autoreconf -vif && ./configure && make check
#+END_SRC
You can now hack this project's files to your heart's content, whilst
testing them from your `guix environment' shell.
To try out any scripts in the project you can now use
#+BEGIN_SRC bash
./pre-inst-env scripts/${script-name}
#+END_SRC
If you'd like to tidy the project again, but retain the ability to test the
project from the commandline, simply run:
#+BEGIN_SRC bash
./hall clean --skip "scripts/${script-name},pre-inst-env" --execute
#+END_SRC
** Manual Installation
If you do not yet use Guix, you will have to install this project's
dependencies manually:
- autoconf
- automake
- pkg-config
- texinfo
- guile-hall
Once those dependencies are installed you can run:
#+BEGIN_SRC bash
hall dist -x && autoreconf -vif && ./configure && make check
#+END_SRC

1
README Symbolic link
View file

@ -0,0 +1 @@
README.org

60
doc/inkplate.texi Normal file
View file

@ -0,0 +1,60 @@
\input texinfo
@c -*-texinfo-*-
@c %**start of header
@setfilename guile-inkplate.info
@documentencoding UTF-8
@settitle Guile Inkplate Reference Manual
@c %**end of header
@include version.texi
@copying
Copyright @copyright{} 2023 Tom Willemse
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled ``GNU Free
Documentation License''.
@end copying
@dircategory The Algorithmic Language Scheme
@direntry
* Guile Inkplate: (guile-inkplate).
@end direntry
@titlepage
@title The Guile Inkplate Manual
@author Tom Willemse
@page
@vskip 0pt plus 1filll
Edition @value{EDITION} @*
@value{UPDATED} @*
@insertcopying
@end titlepage
@contents
@c *********************************************************************
@node Top
@top Guile Inkplate
This document describes Guile Inkplate version @value{VERSION}.
@menu
* Introduction:: Why Guile Inkplate?
@end menu
@c *********************************************************************
@node Introduction
@chapter Introduction
INTRODUCTION HERE
This documentation is a stub.
@bye

31
guix.scm Normal file
View file

@ -0,0 +1,31 @@
(use-modules
(guix packages)
((guix licenses) #:prefix license:)
(guix download)
(guix build-system gnu)
(guix gexp)
(gnu packages)
(gnu packages autotools)
(gnu packages guile)
(gnu packages guile-xyz)
(gnu packages pkg-config)
(gnu packages texinfo))
(package
(name "guile-inkplate")
(version "0.1")
(source (local-file "./guile-inkplate-0.1.tar.gz"))
(build-system gnu-build-system)
(arguments `())
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
(inputs `(("guile" ,guile-3.0)))
(propagated-inputs `())
(synopsis "")
(description "")
(home-page "")
(license license:gpl3+))

27
hall.scm Normal file
View file

@ -0,0 +1,27 @@
(hall-description
(name "inkplate")
(prefix "guile")
(version "0.1")
(author "Tom Willemse")
(copyright (2023))
(synopsis "")
(description "")
(home-page "")
(license gpl3+)
(dependencies `())
(skip ())
(files (libraries ((scheme-file "inkplate")))
(tests ((directory "tests" ((scheme-file "inkplate")))))
(programs ((directory "scripts" ())))
(documentation
((directory "examples" ((scheme-file "date")))
(directory "doc" ((texi-file "inkplate")))
(text-file "COPYING")
(text-file "HACKING")
(symlink "README" "README.org")
(org-file "README")))
(infrastructure
((directory "build-aux" ())
(scheme-file "hall")
(text-file ".gitignore")
(scheme-file "guix")))))

View file

@ -1,4 +1,4 @@
(define-module (inkplate lowlevel) (define-module (inkplate)
#:use-module ((ice-9 format) #:select (format)) #:use-module ((ice-9 format) #:select (format))
#:use-module ((srfi srfi-9) #:select (define-record-type)) #:use-module ((srfi srfi-9) #:select (define-record-type))

View file

@ -1,5 +1,5 @@
(use-modules (srfi srfi-64) (use-modules (srfi srfi-64)
(inkplate lowlevel)) (inkplate))
(define* (call-with-test-device func #:key (input-string "")) (define* (call-with-test-device func #:key (input-string ""))
(let ((device (make-inkplate (open-input-string input-string) (open-output-string)))) (let ((device (make-inkplate (open-input-string input-string) (open-output-string))))