первый старт
GutsyHeart opened this issue · 17 comments
При запуске папки prefix, data, bin создаются в $HOME
Как сделать, чтобы они создовались там же где и start ?
Стандартная последовательность разворачивания
- Создать пустую папку
- Скачать в него файл
start - Запустить, дождаться инициализации
- Все папки по умолчанию должны создаваться рядом с файлом
start - Закрыть, переместить файл
startв появившуюся папкуbin
1 +
2 +
3 +
4 папки в $HOME
Я запускаю из фм (qtfm)
Если перейти в диристорию в терминале и запустить, то они создаются где надо.
Какой дистрибутив?
Проверяли под другими файловыми менеджерами?
Artix Linux
Проблема в qtfm. Проверил в pcmanfm - всё норм.
Спасибо за помощь.
Дистрибутив pop os 20.10, запускаю из терминала команду ./start в директории ~/games/, все папки создаются в ~/
Дистрибутив pop os 20.10, запускаю из терминала команду
./startв директории~/games/, все папки создаются в~/
Файловый менеджер nautilus, двойной клик по start делает то же самое что и запуск из терминала - все папки создаются в ~/.
Если руками переместить папки в нужную директорию, то при повторном запуске start, папки опять пересоздадутся в ~/
@PaulKovalov скачал LiveCD pop os 20.10 баг не повторился, все директории создаются рядом с файлом start
@hitman249 да, действительно. Тоже скачал, проверил на свежей системе, работает как надо.
Я попробовал сам собрать приложение в дебаг режиме, добавив выводы в консоль из метода getRootDir(). Как я понял, этот метод возвращает корневую директорию в которую будут созданы необходимые папки.
При запуске из директории
a/b/c,
метод возвращает директорию a, спускается на две директории вниз. Ну это и в коде собственно так и написано, только непонятно зачем: если скрипт лежит в папке a/b/c, то все директории должны создатся в a/b/c, а по коду выходит что rootDir станет a/b, а binDir и вовсе a/bin.
Да, и почему-то скрипт так и не смог создать в дебаг режиме ни одной директории, запускал из папки проекта в дебаг режиме. Падает с ошибкой stack overflow.
Непонятно только, как это работает на свежем образе. Возможно, window.process.env.APPIMAGE не undefined у свежего образа, потому что у меня undefined.
-
для дебаг режима не обязательно пересобирать, нужно просто запустить приложение так
env debug=1 ./start -
потом в консоли инспектора
app.getPrefix().getRootDir()- это должен быть путь к папке в которой лежит файл start, если там домашняя папка, значит определить папку не удалось -
переменная
window.process.env.APPIMAGEуказывает на полный путь к файлуstart -
т.к. у вас эта переменная пуста посмотрите и перечислите все переменные которые указывают на папку в которой лежит файл start в
window.process.env -
убедитесь что у вас не установлены приложения "вредители", например
appimagelauncherfs
ПС: если установлены, то после удаления нужно ещё перезагрузиться, они интегрируются прям в ядро системы..
Оказалось, что проблема в том, что у меня в '~/' была папка bin. Дело все в этом коде...
if (this.fs.exists(binDir)) {
this.rootDir = path.resolve(this.rootDir, '..');
}
Ну такое, я ж имею право создать папку bin в $HOME, а лаунчер получается не дает. Это сделано чтобы можно было start перемещать в папку bin?
Я думаю, надо хотя бы ворнинг какой-то кидать, что папка bin мешает...
насчет window.process.env.APPIMAGE беру свои слова назад, эта переменная действительно указывает на start.
В принципе, можно проверять наличие всех 3 директорий, которые генерирует скрипт, уменьшить вероятность такого случая что директории будут существовать в корневой папке, и скрипт не создаст свои папки там где он был запущен
получается у вас такая структура?
~/bin
~/wl/start
да, такая
сделал ПР #17 который должен пофиксить это
@PaulKovalov
слил, но поправил, папка prefix не обязательна для первого запуска, а значит её может не быть
также добавил документацию по отладке