diff options
| author | s-ol <s+removethis@s-ol.nu> | 2022-03-28 13:58:08 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2022-03-28 14:24:26 +0000 |
| commit | 269d9986c12e277eb6fd5241f34c027c439f84ae (patch) | |
| tree | 748f965272ada1293b5d5f12420f9f7cb069c0fa /root/$mmm/plugins/sass | |
| parent | move layout into user content (diff) | |
| download | mmm-269d9986c12e277eb6fd5241f34c027c439f84ae.tar.gz mmm-269d9986c12e277eb6fd5241f34c027c439f84ae.zip | |
fix plugins in example root
Diffstat (limited to 'root/$mmm/plugins/sass')
| -rw-r--r-- | root/$mmm/plugins/sass/converts: text$lua -> table.lua | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/root/$mmm/plugins/sass/converts: text$lua -> table.lua b/root/$mmm/plugins/sass/converts: text$lua -> table.lua new file mode 100644 index 0000000..f2887e3 --- /dev/null +++ b/root/$mmm/plugins/sass/converts: text$lua -> table.lua @@ -0,0 +1,54 @@ +if MODE == 'CLIENT' then + return { } +end +local posix = require('posix') +return { + { + inp = 'text/x-scss', + out = 'text/css', + cost = 1, + transform = function(self, content) + local r0, w0 = posix.pipe() + local r1, w1 = posix.pipe() + local r2, w2 = posix.pipe() + local pid = assert(posix.fork()) + if pid == 0 then + posix.close(w0) + posix.close(r1) + posix.close(r2) + posix.dup2(r0, posix.fileno(io.stdin)) + posix.dup2(w1, posix.fileno(io.stdout)) + posix.dup2(w2, posix.fileno(io.stderr)) + posix.close(r0) + posix.close(w1) + posix.close(w2) + local err = assert(posix.execp('sassc', '-s')) + posix._exit(err) + return + else + posix.close(r0) + posix.close(w1) + posix.close(w2) + posix.write(w0, content) + posix.close(w0) + local _, status + _, _, status = posix.wait(pid) + local out + if status == 0 then + out = r1 + else + out = r2 + end + out = assert(posix.fdopen(out, 'r')) + out = out:read('a') + posix.close(r1) + posix.close(r2) + if status == 0 then + return out + else + return error(out) + end + end + end + } +} |
