commit
949264fcdc
5 changed files with 116 additions and 0 deletions
@ -0,0 +1 @@ |
|||
node_modules |
@ -0,0 +1,19 @@ |
|||
# abn-amro-mt940-fix |
|||
|
|||
Fixes ABN AMRO's broken MT940 export files, so that they can be imported into GnuCash without changing the importer configuration. |
|||
|
|||
## Installation |
|||
|
|||
Make sure you have Node.js installed. |
|||
|
|||
```sh |
|||
npm install -g abn-amro-mt940-fix |
|||
``` |
|||
|
|||
## Usage |
|||
|
|||
```sh |
|||
abn-amro-mt940-fix YOUR-FILE.STA |
|||
``` |
|||
|
|||
A new file is created, with `-fixed` suffixed to the name, containing the fixed version of the export file. The new path is also printed to the terminal. |
@ -0,0 +1,27 @@ |
|||
#!/usr/bin/env node
|
|||
|
|||
"use strict"; |
|||
|
|||
const fs = require("fs"); |
|||
const chalk = require("chalk"); |
|||
const path = require("path"); |
|||
|
|||
if (process.argv[2] == null) { |
|||
console.error(chalk.red("You must specify one or more MT940 (.STA) files to fix, like so:\n abn-amro-mt940-fix YOUR-FILE.STA")); |
|||
} else { |
|||
process.argv.slice(2).forEach((file) => { |
|||
let absolutePath = path.resolve(file); |
|||
let contents = fs.readFileSync(absolutePath, { encoding: "utf8" }); |
|||
|
|||
let parsedPath = path.parse(absolutePath); |
|||
delete parsedPath.base; |
|||
parsedPath.name += "-fixed"; |
|||
|
|||
let fixedContents = contents.replace(/(^|\r\n-\r\n)ABNANL2A\r\n940\r\nABNANL2A\r\n/g, "$1"); |
|||
let fixedFilename = path.format(parsedPath); |
|||
|
|||
fs.writeFileSync(fixedFilename, fixedContents, { encoding: "utf8" }) |
|||
|
|||
console.log(file, "->", fixedFilename); |
|||
}); |
|||
} |
@ -0,0 +1,16 @@ |
|||
{ |
|||
"name": "abn-amro-mt940-fix", |
|||
"description": "Fixes ABN AMRO-created MT940 export files, so they work in GnuCash", |
|||
"version": "1.0.0", |
|||
"main": "fix.js", |
|||
"bin": { |
|||
"abn-amro-mt940-fix": "./fix.js" |
|||
}, |
|||
"repository": "http://git.cryto.net/joepie91/abn-amro-mt940-fix.git", |
|||
"author": "Sven Slootweg <admin@cryto.net>", |
|||
"license": "WTFPL OR CC0-1.0", |
|||
"dependencies": { |
|||
"bluebird": "^3.5.5", |
|||
"chalk": "^2.4.2" |
|||
} |
|||
} |
@ -0,0 +1,53 @@ |
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. |
|||
# yarn lockfile v1 |
|||
|
|||
|
|||
ansi-styles@^3.2.1: |
|||
version "3.2.1" |
|||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" |
|||
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== |
|||
dependencies: |
|||
color-convert "^1.9.0" |
|||
|
|||
bluebird@^3.5.5: |
|||
version "3.5.5" |
|||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" |
|||
integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== |
|||
|
|||
chalk@^2.4.2: |
|||
version "2.4.2" |
|||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" |
|||
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== |
|||
dependencies: |
|||
ansi-styles "^3.2.1" |
|||
escape-string-regexp "^1.0.5" |
|||
supports-color "^5.3.0" |
|||
|
|||
color-convert@^1.9.0: |
|||
version "1.9.3" |
|||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" |
|||
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== |
|||
dependencies: |
|||
color-name "1.1.3" |
|||
|
|||
color-name@1.1.3: |
|||
version "1.1.3" |
|||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" |
|||
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= |
|||
|
|||
escape-string-regexp@^1.0.5: |
|||
version "1.0.5" |
|||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" |
|||
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= |
|||
|
|||
has-flag@^3.0.0: |
|||
version "3.0.0" |
|||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" |
|||
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= |
|||
|
|||
supports-color@^5.3.0: |
|||
version "5.5.0" |
|||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" |
|||
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== |
|||
dependencies: |
|||
has-flag "^3.0.0" |
Loading…
Reference in new issue