Other than SRFI packages are now made to setup exe

This commit is contained in:
retropikzel 2024-10-11 10:48:47 +03:00
commit 8d794602bc
9 changed files with 111 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
*.swp
repo.scm
urls.txt
snow
setup_snow.exe
setup_srfi*.exe

4
Dockerfile.jenkins Normal file
View File

@ -0,0 +1,4 @@
FROM alpine:latest
RUN apk add wine
COPY ./executables/nsis-3.10-setup.exe /setup.exe
RUN wine setup.exe /S

24
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,24 @@
pipeline {
agent {
dockerfile {
filename 'Dockerfile.jenkins'
dir '.'
args '--privileged -v /var/run/docker.sock:/var/run/docker.sock'
}
}
options {
buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10'))
}
stages {
stage("Build") {
steps {
sh 'make'
archiveArtifacts artifacts: 'setup_*.exe'
}
}
}
}

15
Makefile Normal file
View File

@ -0,0 +1,15 @@
build: snow
wine ${HOME}/.wine/drive_c/Program\ Files\ \(x86\)/NSIS/makensis.exe install.nsi
repo.scm:
wget https://snow-fort.org/s/repo.scm
urls.txt: repo.scm
gosh -r7 get-archive-urls.scm > urls.txt
snow: urls.txt
sh download.sh
clean:
rm -rf repo.scm
rm -rf snow

10
README.md Normal file
View File

@ -0,0 +1,10 @@
## Note about SRFIs
SRFI packages are not inluded in the setup executable as
there might be more than one implementation.
## Installation
Download the latest setup executable from Jenkins.

13
download.sh Normal file
View File

@ -0,0 +1,13 @@
#!/bin/sh
set -eu
TMPDIR=/tmp/r7rs-windows-installer-archives
mkdir -p ${TMPDIR}
mkdir -p snow
while read url
do
wget -O ${TMPDIR}/archive.tgz ${url}
tar -Pxf ${TMPDIR}/archive.tgz --strip-components=1 -C ./snow
done <urls.txt

Binary file not shown.

29
get-archive-urls.scm Normal file
View File

@ -0,0 +1,29 @@
(import (scheme base)
(scheme read)
(scheme write)
(scheme file)
(scheme process-context))
(define repository (with-input-from-file "repo.scm" (lambda () (read))))
(define baseurl "https://snow-fort.org")
(define packager-is-srfi?
(lambda (package)
(let ((is-srfi? #f))
(for-each
(lambda (item)
(when (and (equal? (car item) 'library)
(equal? (car (cadr (assoc 'name item))) 'srfi))
(set! is-srfi? #t)))
(cdr package))
is-srfi?)))
(for-each
(lambda (item)
(when (and (equal? (car item) 'package)
(not (packager-is-srfi? item)))
(display baseurl)
(display (cadr (assoc 'url item)))
(newline)))
(cdr repository))

10
install.nsi Normal file
View File

@ -0,0 +1,10 @@
OutFile "setup_snow.exe"
InstallDir "$PROGRAMFILES64"
Section
SetOutPath "$INSTDIR"
RMDir "$INSTDIR"
File /r "snow"
Push "$INSTDIR"
SectionEnd