diff --git a/README.md b/README.md index 9d9c01f..82478ed 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,8 @@ # Terminal-Simulator Just a fun terminal simulator coded in HTML5, JS, and CSS. It combines different softwares, and it's a work in progress! + +## Commands + +`hello`: This command will return with "hello, {username}!" +`changename {USERNAME}`: This command will changed your cached name. +`clearcache`: This command will clear any local storage. See the (local cache document)[./cache.md]. \ No newline at end of file diff --git a/cache.md b/cache.md new file mode 100644 index 0000000..595a366 --- /dev/null +++ b/cache.md @@ -0,0 +1,8 @@ +# Cache +Find all the information about what is being stored on your browser's cache. + +## Clearing the cache +To clear the cache, simply enter `clearcache`. + +## Commands +* `changename`: Changes the stored "username". \ No newline at end of file diff --git a/index.html b/index.html index 35b9c70..3234994 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@
-
$ Welcome to the Linux Terminal Simulator
+
$
diff --git a/main.js b/main.js index a05ef30..1e9664c 100644 --- a/main.js +++ b/main.js @@ -1,53 +1,72 @@ - // Retrieve the name from localStorage. If not found, set a default value. - let name = localStorage.getItem('username') || "user"; - terminal.loadAddon(fitAddon); - terminal.open(document.getElementsByClassName('terminal')); - fitAddon.fit(); - - terminal.prompt = () => { - terminal.write('\r\n'); - terminal.write(`\x1b[32m${name}\x1b[0m$ `); - }; - - function changeName(newName) { - // Update the name variable - name = newName; - // Store the updated name in localStorage - localStorage.setItem('username', newName); - } - - function handleInput(event) { - if (event.key === "Enter") { - const commandInput = document.getElementById("commandInput"); - const command = commandInput.value; - const outputDiv = document.querySelector('.output'); - - // Simulate command execution - const output = executeCommand(command); - - // Display command and output in the terminal - outputDiv.innerHTML += `
$ ${command}
`; - outputDiv.innerHTML += `
${output}
`; - - // Clear the input field - commandInput.value = ""; - } - } - - function executeCommand(command) { - // Simulate command execution (add more commands through GitHub Pull Requests.) - if (command.toLowerCase() === "hello") { - return `Hello, ${name}!`; - } else if (command.toLowerCase().startsWith("changename ")) { - const newName = command.substring("changename ".length); - changeName(newName); - return `Name changed to ${name}`; - } else if (command.toLowerCase() === "clearcache") { - localStorage.clear(); - window.location.reload(true); - } - else { - return `Command not found: ${command}`; - } - } - \ No newline at end of file +// Get the current date and time on page load +document.addEventListener('DOMContentLoaded', () => { + const outputDiv = document.querySelector('.output'); + const currentDate = new Date(); + const formattedDate = currentDate.toLocaleString(); + + // Display the initial date and time in the terminal + outputDiv.innerHTML += `
$ Terminal @${formattedDate}
`; +}); +// Retrieve the name from localStorage. If not found, set a default value. +let name = localStorage.getItem('username') || "user"; +terminal.loadAddon(fitAddon); +terminal.open(document.getElementsByClassName('terminal')); +fitAddon.fit(); + +terminal.prompt = () => { + terminal.write('\r\n'); + terminal.write(`\x1b[32m${name}\x1b[0m$ `); +}; + +function changeName(newName) { + // Update the name variable + name = newName; + // Store the updated name in localStorage + localStorage.setItem('username', newName); +} + +function handleInput(event) { + if (event.key === "Enter") { + const commandInput = document.getElementById("commandInput"); + const command = commandInput.value; + const outputDiv = document.querySelector('.output'); + + // Simulate command execution + const output = executeCommand(command); + + // Display command and output in the terminal + outputDiv.innerHTML += `
$ ${command}
`; + outputDiv.innerHTML += `
${output}
`; + + // Clear the input field + commandInput.value = ""; + } +} + +function executeCommand(command) { + // Simulate command execution (add more commands through GitHub Pull Requests.) + if (command.toLowerCase() === "hello") { + return `Hello, ${name}!`; + } else if (command.toLowerCase().startsWith("changename ")) { + const newName = command.substring("changename ".length); + changeName(newName); + return `Name changed to ${name}`; + } else if (command.toLowerCase() === "clearcache") { + localStorage.clear(); + window.location.reload(true); + } + else if (command.toLowerCase().startsWith("changename")) { + const newName = command.substring("changename ".length).trim(); + + if (newName === "") { + return "'Name' not defined."; + } + + changeName(newName); + return `Name changed to ${name}`; + } + + else { + return `Command not found: ${command}`; + } +}