OpenComputers/Туториал: Работаем с Pastebin и GitHub

OpenComputers предоставляет удобный способ распространения и перемещения программ, который особенно полезен, когда вы играете на сервере и не имеете доступа к папке с сохранением мира.

## Pastebin

Вы можете выложить программу на сервис копирования Pastebin.

Ваша программа на Pastebin получит свой идентификатор (восьмизначный код), который вы можете скопировать из адресной строки браузера.


* Внимание*: Для того чтобы появилась возможность загрузить программу на ваш компьютер (или робота), он должен обладать интернет платой.

Интернет плата имеет встроенную программу для взаимодействия с Pastebin, с одноименным названием.



### Скачивание программы

Введите в консоль компьютера команду:

`pastebin get [-f] [-k] <id> <имя_файла>`



Команда может содержать два необязательных флага:

`-f`

— перезаписать файл на диске при совпадении имен`-k`

— оставить служебные символы переноса как есть (в противном случае, все символы переноса будут конвертированы в Unix-стиль, то есть`\r\n`

в`\n`

)

Параметры функции:

`id`

— идентификатор текста на Pastebin`имя_файла`

— название нового файла на диске, куда будет помещен код программы


Возможные сообщения программы:

`Saved data to <имя_файла>`

— загрузка прошла успешно, файл сохранен по указанному адресу`HTTP request failed: <причина>`

— загрузка прервана, не удалось отправить HTTP-запрос`Failed opening file for writing: <причина>`

— программа не может открыть файл для записи



### Заливка программы на Pastebin

Для того, чтобы отправить свою программу на Pastebin из игры, введите команду:

`pastebin put <имя_файла>`



Параметром функции служит путь к нужному файлу на диске.


Возможные сообщения программы:

`Uploaded as <идентификатор>`

— загрузка завершена! Файл сохранен на Pastebin с указанным идентификатором`Uploading to pastebin.com... failed. <причина>`

— залить программу на Pastebin не удалось`Failed opening file for reading: <причина>`

— программа не может открыть файл для чтения



### Запуск программы с Pastebin, без сохранения

Если вы хотите выполнить программу один раз, не сохраняя её на диске компьютера, вы можете воспользоваться командой `run`

. Она скачает программу во временную файловую систему и удалит после выполнения.

Введите в консоль компьютера команду:

`pastebin run <id> [<параметры...>]`



В качестве параметра передается идентификатор программы на Pastebin. Все остальные параметры будут переданы запускаемой программе в качестве аргументов.



## GitHub

Этот способ подходит для более серьезных и развивающихся проектов.

Вместе с модификацией OpenComputers идет программа `oppm`

(OpenPrograms package manager). Она позволяет просматривать и загружать программы расположенные в GitHub проекте OpenPrograms.


* Внимание:* для работы программы, компьютер (или робот) должен обладать интернет платой.



### Использование OPPM

Команды консоли:

`oppm list [-i]`

— список всех доступных программных пакетов`oppm list [-i] <фильтр>`

— список всех пакетов, содержащих в названии заданную подстроку

Параметр `-i`

ограничивает список только теми пакетами, которые уже установлены.

`oppm info <пакет>`

— показывает дополнительную информацию о пакете`oppm install [-f] <пакет> [путь]`

— загружает пакет в указанный каталог (или`/usr`

по умолчанию)`oppm update <пакет>`

— обновляет уже установленный пакет`oppm update all`

— обновляет все установленные пакеты`oppm uninstall <пакет>`

— удаляет программный пакет из вашей системы

Параметр `-f`

указывает программе создать отсутствующие папки при необходимости, и перезаписывать файлы при совпадении имен



### Создание своей программы на GitHub

Для того, чтобы разместить в проекте OpenPrograms свою программу, вам необходимо создать форк (fork) репозитория MiscPrograms. Создайте в нём папку, которую назовите своим игровым ником.

Поместите внутрь папки все необходимые файлы.

После этого отправьте pull-запрос (Pull Request) и ваши файлы будут подключены к главному репозиторию.


* Внимание:* убедитесь, что файлы не содержат несоответствующего контента, и относятся к модификации OpenComputers и программированию на Lua!