From 042d9fc1b31d0efbab69bffff752984bbea3d020 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 8 Oct 2022 20:26:44 +0000 Subject: [PATCH] kill-carriage-return. Close #144 --- .github/workflows/test.yml | 1 + projects/kill-carriage-return/build.hxml | 4 ++ projects/kill-carriage-return/haxelib.json | 17 +++++++ .../src/kill_carriage_return/Main.hx | 7 +++ .../src/kill_carriage_return/Main_.kiss | 46 +++++++++++++++++++ projects/kill-carriage-return/test.sh | 4 ++ 6 files changed, 79 insertions(+) create mode 100644 projects/kill-carriage-return/build.hxml create mode 100644 projects/kill-carriage-return/haxelib.json create mode 100644 projects/kill-carriage-return/src/kill_carriage_return/Main.hx create mode 100644 projects/kill-carriage-return/src/kill_carriage_return/Main_.kiss create mode 100644 projects/kill-carriage-return/test.sh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 70f34a65..fdf4cdba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,6 +28,7 @@ jobs: # TODO hollywoo # TODO hollywoo-flixel # TODO iso-rpg-engine + - KISS_PROJECT=kill-carriage-return # TODO kiss-express # TODO kiss-flixel - KISS_PROJECT=kiss-tools diff --git a/projects/kill-carriage-return/build.hxml b/projects/kill-carriage-return/build.hxml new file mode 100644 index 00000000..3d781b6f --- /dev/null +++ b/projects/kill-carriage-return/build.hxml @@ -0,0 +1,4 @@ +-lib kiss +-cp src +--main kill_carriage_return.Main +--interp \ No newline at end of file diff --git a/projects/kill-carriage-return/haxelib.json b/projects/kill-carriage-return/haxelib.json new file mode 100644 index 00000000..9eb941ab --- /dev/null +++ b/projects/kill-carriage-return/haxelib.json @@ -0,0 +1,17 @@ +{ + "main": "kill_carriage_return.Main", + "name": "kill-carriage-return", + "description": "Do you hate Windows-style line endings as much as I do?", + "classPath": "src/", + "dependencies": { + "kiss": "" + }, + "url": "https://github.com/NQNStudios/kisslang", + "contributors": [ + "NQNStudios" + ], + "version": "0.0.0", + "releasenote": "", + "tags": [], + "license": "LGPL" +} diff --git a/projects/kill-carriage-return/src/kill_carriage_return/Main.hx b/projects/kill-carriage-return/src/kill_carriage_return/Main.hx new file mode 100644 index 00000000..2b2c6bd0 --- /dev/null +++ b/projects/kill-carriage-return/src/kill_carriage_return/Main.hx @@ -0,0 +1,7 @@ +package kill_carriage_return; + +class Main { + static function main() { + Main_.main(); + } +} diff --git a/projects/kill-carriage-return/src/kill_carriage_return/Main_.kiss b/projects/kill-carriage-return/src/kill_carriage_return/Main_.kiss new file mode 100644 index 00000000..0df41273 --- /dev/null +++ b/projects/kill-carriage-return/src/kill_carriage_return/Main_.kiss @@ -0,0 +1,46 @@ +(function usageError [] + (print "Usage: haxelib run kill-carriage-return ") + (Sys.exit 1) + false) + +(using haxe.io.Path) +(function run [dir :Array extensions _kill] + (walkDirectory + "" + dir + ->:Void file + (when (contains extensions (file.extension)) + ((if _kill kill stun) file)) + ->:Void dir 0 + ->:Void dir 0) + (when stunnedFiles + (print "Windows line ending(s) detected in:") + (doFor file stunnedFiles (print file)) + (Sys.exit 1))) + +(import sys.io.File) +(function kill [file] + (File.saveContent file (.replace (File.getContent file) "\r" ""))) + +(var stunnedFiles []) +(function stun [file] + (when (contains (File.getContent file) "\r") + (stunnedFiles.push file))) + +(ifLet [[::killOrStun ...extensions cwd] (Sys.args)] + { + (run + cwd + (for ext extensions + (if (ext.startsWith ".") + (ext.substr 1) + ext)) + (case killOrStun + ("kill" + true) + ("stun" + false) + (otherwise + (usageError)))) + } + (usageError)) \ No newline at end of file diff --git a/projects/kill-carriage-return/test.sh b/projects/kill-carriage-return/test.sh new file mode 100644 index 00000000..3da325b2 --- /dev/null +++ b/projects/kill-carriage-return/test.sh @@ -0,0 +1,4 @@ +#! /bin/bash + +haxelib dev kill-carriage-return ./ +(cd ../../ && haxelib run kill-carriage-return stun sh) \ No newline at end of file