# Песочница

Если вы хотите дать возможность третьим лицам запускать скрипты Gentee на вашем компьютере, то используйте при запуске скриптов режим *Playground*. Этот режим удобен для запуска скриптов в демонстрационных или учебных целях и защищает данные на компьютере от случайного или намеренного ущерба. Для включения этого режима укажите поле *IsPlayground* как *true* в структуре [*Settings*](https://ru.gentee.org/golang/reference) при запуске скрипта с помощью функции *Run*. Кроме этого, рекомендуется уменьшить параметры *Cycle* и *Depth* для установки ограничений на потребляемые ресурсы.

Работа скриптов в режиме *Playground* имеет следующие ограничения:

* **Процессы**. Отключены запуски любых процессов, включая открытие файлов в соответствующих приложениях. То есть функции *Open, OpenWith,Run, Start* работать не будут. Также не работает команда **$**.
* **Файловая система**. Запись и чтение файлов может происходить только в директории, которая указана в настройках Playground. Если она не указана, то создаётся поддиректория во временной директории. Эта директория становится текущей при запуске скрипта. Кроме этого, имеются ограничения на:
  * общее количество файлов (по умолчанию, 100).
  * суммарный размер файлов (по умолчанию, 10 MB).
  * максимальный размер файла (по умолчанию, 5 MB).
* **Сеть**. Отключена функция *HTTPRequest*. Вызов функций *Download, HTTPGet, HTTPPage* виртуально добавляет файл с соответствущим размером в директорию для записи. Таким образом, на эти функции также действуют ограничения файловой системы.

Если в процессе работы скрипта возникнет ошибка из-за ограничений режима *Playground*, то скрипт прекратит свою работу. В этом случае, текст ошибки будет начинаться с **\[Playground]**.

```go
run {
    $ echo "ooops"
}
// ERROR: [2:5] [Playground] starting any processes is disabled
run {
    AppendFile("../out.txt", "this is a test message")
}
// ERROR: [2:5] [Playground] access denied [../out.txt]
run  {
    for i in 1..110 {
        CreateFile(`%{i}.txt`, false)
    }
}
// ERROR: [3:9] [Playground] file limit reached [100]
```
