campus-tex-cli
Version:
A CLI to quickly generate latex files for presentations or task assignments, using the unofficial template by the University of Stuttgart.
75 lines (61 loc) • 1.66 kB
text/typescript
import inquirer from "inquirer";
import { askTemplateType } from "./askTemplateType.js";
import { PromptData } from "../types/promptData.js";
export const getUserInput = async () => {
const data: PromptData = {
fileName: "",
matriculationNumber: "",
templateType: "article",
topic: "",
userName: "",
useBibTex: false,
};
//Choices: Presentation, Article
data.templateType = await askTemplateType();
//File name
const answer = await inquirer.prompt({
name: "file_name",
type: "input",
message: "Enter file name: ",
default() {
return "assignment.tex";
},
});
data.fileName = answer.file_name;
//Use bibtex
const useBibTexPrompt = await inquirer.prompt({
name: "bibtex",
type: "confirm",
message: "Will you use BibTex?",
default(){
return false;
}
})
data.useBibTex = useBibTexPrompt.bibtex;
//Name of topic
const topicPrompt = await inquirer.prompt({
name: "topic",
type: "input",
message: "What is your topic?",
required: true,
});
data.topic = topicPrompt.topic;
//User name, Matriculation number
const usernamePrompt = await inquirer.prompt({
name: "user_name",
type: "input",
message: "What is your name?",
required: true,
default() {
return "";
},
});
data.userName = usernamePrompt.user_name;
const matriculationNumberPrompt = await inquirer.prompt({
name: "matriculation_number",
type: "number",
message: "What is your matriculation number? (Can be left empty)",
});
data.matriculationNumber = matriculationNumberPrompt.matriculation_number;
return data;
};