Skip to content

Instantly share code, notes, and snippets.

View grantmacken's full-sized avatar
🏠
Working from home

Grant MacKenzie grantmacken

🏠
Working from home
View GitHub Profile
@grantmacken
grantmacken / xdm-type.xqm
Created September 13, 2022 23:51 — forked from adamretter/xdm-type.xqm
xdm-type.xqm
declare function local:xdm-type($value as item()?) as xs:QName? {
typeswitch($value)
case array(*) return xs:QName("array")
case map(*) return xs:QName("map")
case function(*) return xs:QName("function")
case document-node() return xs:QName("document")
case element() return xs:QName("element")
case attribute() return xs:QName("attribute")
case comment() return xs:QName("comment")
case processing-instruction() return xs:QName("processing-instruction")
@grantmacken
grantmacken / .env
Last active February 19, 2019 21:54
Use prove to get TAP output from running #existdb unit tests
NAME=newBase60
CONTAINER=exDev
PORT=8282
USE_DC_OVERRIDE=yes
DC_OVERRIDE_NETWORK=www
@grantmacken
grantmacken / router.t
Last active June 5, 2018 06:53
WIP: for local dev container - running prove in a docker container, use nginx::test to test restXQ routes
use Test::Nginx::Socket 'no_plan';
log_level('debug'); # to ensure any log-level can be outputted
#no_diff();
no_long_string();
run_tests();
__DATA__
=== TEST 1: zie.nz
--- config
@grantmacken
grantmacken / router.xql
Created June 4, 2018 00:53
xqRest router
xquery version "3.1";
(:~ main app routes
@author Grant MacKenzie
@version 0.1
this app is proxied behind openresty/nginx
the data for the app is separate from the app
-------------------------------------------
@grantmacken
grantmacken / home.html
Created May 19, 2018 19:37
Starter eXist Templates : home
<html>
<head>
<title>home page</title>
</head>
<body>
My home page
</body>
</html>
@grantmacken
grantmacken / pre-install.xq
Created December 13, 2017 19:53
xQuery pre-install for xar
xquery version "3.1";
import module namespace xdb="http://exist-db.org/xquery/xmldb";
declare variable $home external;
declare variable $dir external;
declare variable $target external;
declare variable $domain := substring-after( string($target), '/apps/');
declare variable $pages := 'data/' || $domain || '/docs/pages';
declare variable $posts := 'data/' || $domain || '/docs/posts';
declare variable $recycle := 'data/' || $domain || '/docs/recycle';
declare variable $uploads := 'data/' || $domain || '/docs/uploads';
@grantmacken
grantmacken / .gitignore
Last active December 13, 2017 18:44
gitignore for my sites
Makefile
.*
_content
demo.json
@grantmacken
grantmacken / router.xqm
Last active November 22, 2017 22:07
[WIP] restXq app router for eXist
xquery version "3.1";
(:~ main app routes
@author Grant MacKenzie
@version 0.1
this app is proxied behind openresty/nginx
the data for the app is separate from the app
-------------------------------------------
@grantmacken
grantmacken / xQlint
Last active August 11, 2017 06:30
stdin xqlint source to lint xQuery
#!/usr/bin/env node
'use strict';
var fs = require('fs');
var encoding = 'utf-8';
var source = ''
if (process.argv.length <= 2) {
console.log("Usage: " + __filename + " file");
process.exit(-1);
}
var file = process.argv[2];
@grantmacken
grantmacken / getMimeType.mk
Last active March 24, 2016 21:55
make function to get the right mime-type from an extension using #eXistdb mimetypes file
getMimeType = $(shell java -cp $(SAXON) \
net.sf.saxon.Query \
\!method=text \
-qversion:3.1 \
-qs:"doc('file:///$(EXIST_HOME)/mime-types.xml')//mime-type[matches(./extensions,'\$(1),|\$(1)$$')]/@name/string()"\
)