diff --git a/main.ts b/main.ts new file mode 100644 index 0000000..2973548 --- /dev/null +++ b/main.ts @@ -0,0 +1,32 @@ +import { Redmine } from 'bluemine' +import * as CSV from 'std:csv' +import { CsvEntry } from "./type.ts" +import { createUsers } from './src/create_users.ts' +import { appendToGroup } from './src/append_to_group.ts' + +const endpoint = Deno.env.get('ENDPOINT') +const apiKey = Deno.env.get('API_KEY') + +if (apiKey === undefined) { + throw new Error( + 'Redmine REST API key is missing, please define API_KEY', + ) +} +if (endpoint === undefined) { + throw new Error( + 'Redmine REST endpoint is missing, please define ENDPOINT', + ) +} + +const redmine = new Redmine({ endpoint, apiKey }) + +const file = await Deno.readTextFile( + prompt('Full path of the CSV file ?: ') ?? '', +) + +const csv = CSV.parse(file.replaceAll(';', ','), { + skipFirstRow: true, +}) as CsvEntry[] + +createUsers(redmine, csv) +appendToGroup(redmine, csv, prompt('Enter a group name ?: ') ?? '') diff --git a/mod.ts b/mod.ts deleted file mode 100644 index fc1c319..0000000 --- a/mod.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Redmine } from 'bluemine' -import * as CSV from 'std:csv' -import { CsvEntry } from './type.ts' -import { createUsers } from './src/create_users.ts' -import { appendToGroup } from './src/append_to_group.ts' - -if (import.meta.main) { - const endpoint = Deno.env.get('ENDPOINT') - const apiKey = Deno.env.get('API_KEY') - - if (apiKey === undefined) { - throw new Error( - 'Redmine REST API key is missing, please define API_KEY', - ) - } - if (endpoint === undefined) { - throw new Error( - 'Redmine REST endpoint is missing, please define ENDPOINT', - ) - } - - const redmine = new Redmine({ endpoint, apiKey }) - - const file = await Deno.readTextFile( - prompt('Full path of the CSV file ?: ') ?? '', - ) - - const csv = CSV.parse(file.replaceAll(';', ','), { - skipFirstRow: true, - }) as CsvEntry[] - - createUsers(redmine, csv) - appendToGroup(redmine, csv, prompt('Enter a group name ?: ') ?? '') -}