Skip to content

NE-DOS - это Web-приложение, которое имитирует функциональность и интерфейс операционной системы MS-DOS, позволяя пользователям работать с командной строкой и выполнить различные операции, такие как управление файлами, выполнение команд и т. д.

License

Notifications You must be signed in to change notification settings

PRO100BYTE/ne-dos

Repository files navigation


NE-DOS

С чего начать?

  1. Выполните клонирование репозитория:
    git clone https://github.com/PRO100BYTE/ne-dos
  2. Установите зависимости:
    npm install
  3. Запустите сервер разработки:
    npm start

Как создать и добавить команду?

Для начала, создайте файл команды в src/commands. Это должен быть JavaScript файл. Например: my-command.js

Создайте логику своей команды:

export default class MyCommand {
  execute(term, params, directory, setDirectory) {
    // здесь создайте логику команды
  }
  
  description() {
    // Краткое описание Вашей команды (для команды help)
    return "";
  }
  
  help(term) {
    // Действия программы при получении помощи
    // Выполняется при 'help your_command'
  }
}

И наконец, зарегистрируйте свою команду в файле src/registration.js:

// ...
registeredCommands['mycmd'] = new MyCommand();
// ...

ECode APIs

Если необходимо реализовать работу с использованием ecode apis (lk.edwardcode.ru)

Токен можно найти в /.config/ecode.token (C:\.config\ecode.token)

if (!window.fs.existsSync("/.config/ecode.token")) {
  term.writeln("  \x1b[33;1mNo API key found\x1b[0m");
  term.writeln("  Please sign in first: ecode auth [token]");
  return;
}

const token = window.fs.readFileSync("/.config/ecode.token", "utf8");

Также всю работу с токенами/сохраняемыми объектами лучше делать в папке /.config

Файловая система

Реализована с помощью BrowserFS с использованием localstorage в качестве хранилища

window.fs - пакет для работы с файловой системой, аналог обычному fs

Кастомные внешние команды

С использованием registercommand [URL] можно временно регистрировать команды, исполняемые файлы которых расположены на другом сервере.

Сам файл должен быть анонимной функцией, возвращающей объект с параметрами cmd и func

Например:

(() => {
  return {
    cmd: "test",
    func: class TestCommand {
      execute(term, args, dir, setDir) {
        term.writeln("Command test registered! It works!")
      }
      description() {
        return "Example third-party command";
      }
      help(term) {
        term.writeln("help() of custom command!")
      }
    }
  }
})();

ВАЖНО! Сервер с JS-файлом должен отдавать заголовок Access-Control-Allow-Origin равный https://ne-dos.ru или *

Приветствуется помощь в создании маркетплейса таких кастомных команд. Маркетплейс должен быть доступен на GitHub (быть опенсурсом) и работать на основе XorekID в качестве системы аккаунтов.

Для получения более подробной информации вы можете связаться с разработчиками в Telegram: @dpudnet и @thedayg0ne

About

NE-DOS - это Web-приложение, которое имитирует функциональность и интерфейс операционной системы MS-DOS, позволяя пользователям работать с командной строкой и выполнить различные операции, такие как управление файлами, выполнение команд и т. д.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project