Mycroft-core: Упростите команды интерфейса командной строки для остановки и запуска сервисов Mycroft.

Созданный на 15 сент. 2017  ·  8Комментарии  ·  Источник: MycroftAI/mycroft-core

_Origin: эта проблема поднимается на основе беседы ч / б @kathyreid и @penrods и направлена ​​на то, чтобы сделать остановку и запуск сервисов

Истории пользователей

Как разработчик или пользователь командной строки Mycroft, я хочу, чтобы процесс остановки и запуска сервисов Mycroft был интуитивно понятным, чтобы я мог сосредоточиться на расширении платформы, а не на базовом использовании.

Как основной специалист по сопровождению Mycroft, я хочу, чтобы процесс остановки и запуска сервисов Mycroft был интуитивно понятным, чтобы уменьшить количество вопросов «Приступая к работе», что позволит мне сосредоточить свое время на расширении функциональности и устранении сложных проблем.

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

Критерии приемки

  • Запуск, остановка и перезапуск служб Mycroft выполняется в соответствии со стандартным интуитивно понятным синтаксисом. Например, это может отражать синтаксис, используемый systemctl в Ubuntu - в следующих строках:
$ mycroft [action] [subservice] [parameter]

например.

$ mycroft start all
$ mycroft stop all
$ mycroft restart all

$ mycroft start voice
$ mycroft start all --quiet
  • Этот подход должен быть согласован с сообществом разработчиков Mycroft и запрашиваться у него.
  • Синтаксис должен быть четко задокументирован как в README.md для репозитория mycroft-core, так и в docs.mycroft.ai (это будет работа @kathyreid )
medium Enhancement - proposed help wanted

Самый полезный комментарий

Я предлагаю сделать это с помощью пары очень легко обнаруживаемых скриптов. А именно:
$ ./mycroft-start.sh
$ ./mycroft-stop.sh

Когда вы просто просматриваете файловую систему, новичку выскакиваете: «О, вот как вы это запустите!»

Тогда я бы при желании поддержал определенные имена сервисов в качестве параметров. Например
mycroft-start.sh [все | голос | навыки | ...]
mycroft-stop.sh [все | голос | навыки | ...]

Нет необходимости в перезапуске, «start» должен остановить все, что уже запущено (мы не можем позволить запускать дублирующиеся службы). У сервисов нет параметров, поэтому они нам тоже не нужны.

Все 8 Комментарий

Я предлагаю сделать это с помощью пары очень легко обнаруживаемых скриптов. А именно:
$ ./mycroft-start.sh
$ ./mycroft-stop.sh

Когда вы просто просматриваете файловую систему, новичку выскакиваете: «О, вот как вы это запустите!»

Тогда я бы при желании поддержал определенные имена сервисов в качестве параметров. Например
mycroft-start.sh [все | голос | навыки | ...]
mycroft-stop.sh [все | голос | навыки | ...]

Нет необходимости в перезапуске, «start» должен остановить все, что уже запущено (мы не можем позволить запускать дублирующиеся службы). У сервисов нет параметров, поэтому они нам тоже не нужны.

В этом есть большой смысл - извините, мой первоначальный взгляд на это был не совсем верным.

Предлагаю простой интерфейс. Я был (являюсь) программистом Windows .NET, WPF и т. Д., Поэтому мой первоначальный ответ - создать пользовательский интерфейс. Как насчет чего-то простого, что показывает состояние различных состояний, а затем имеет место для ввода текста и показывает выходной текст. Также можно запускать, останавливать, что угодно. Это не сработает на picroft, но я мог бы иметь бэкэнд, который мог бы иметь параметры командной строки, которые пользовательский интерфейс мог бы читать. Я знаю, что все вы, любители Linux, любите командные строки, но художники, дизайнеры и т. Д. Оценят пользовательский интерфейс. У Python есть множество UI-фреймворков, и если бы мы начали с малого и делали простые вещи, он мог бы прогрессировать и в конечном итоге сошёл бы с ума ... Как насчет этого? Хотите, чтобы я спроектировал прототип? Я искал что-то, с чего начать. Это могло быть весело.

Хочет ли Майкрофт принудительно остановить любую службу, которая соответствует тому, что он пытается запустить? Будет ли это проблематично с какой-либо из услуг?

Также я бы проголосовал за изменение имени, чтобы удалить start.sh (свернуть в mycroft.sh, для всех ваших конкретных потребностей?), Добавить start-mycroft.sh и stop-mycroft.sh.

@ highjinx411 Я предполагаю, что вы говорили со мной об этом на Mattermost на днях. Графический интерфейс - хорошая идея, но он не будет частью mycroft-core, который должен быть кроссплатформенным и (соответственно) как можно более независимым от таких вещей, как системы управления окнами. Предлагаемый вами графический интерфейс будет представлять собой корпус, очень похожий на "enclosure-picroft", например, "корпус-окна".

Если вы можете придумать действительно кроссплатформенный графический интерфейс, мне тоже было бы интересно его увидеть!

PS Я сам старый специалист по Windows - большую часть работы по разработке графического интерфейса от AutoSketch 4 до AutoSketch 10 я выполнял в свое время. Обожаю хороший пользовательский интерфейс!

Кроссплатформенный графический интерфейс может быть возможен, но он, вероятно, будет ограничен, поскольку он откажется от любых преимуществ, которые вы получите, сделав его зависимым от платформы. Таким образом, вы можете потерять вызовы, специфичные для Windows, например, что могло бы быть преимуществом, если бы приложение было в Windows. Я согласен с тем, что он должен быть частью вольера, чтобы он был как можно более богатым. Даже разработка «кросс-платформенных» приложений с Xamarin для мобильных телефонов, например, имеет части, которые зависят от платформы и, в конце концов, в любом случае создают конкретный исполняемый файл для каждой ОС. Единственное, что должно быть доступно для всех графических интерфейсов, - это что-то в ядре, которое предоставляет запуск, остановку, получение статуса и т. Д. Таким образом, все графические интерфейсы могут вызывать одни и те же методы независимо от того, на какой платформе установлено ядро ​​... Фактически, даже просто говоря, что сейчас я не уверен, так как Linux хорошо справляется со сценариями bash, но Windows может справиться с помощью другого метода. Так вот вопрос. Будет ли GUI рассматривать экземпляр ядра mycroft для своей платформы? Графический интерфейс Windows смотрит только на ядро ​​Windows, а графический интерфейс Linux смотрит только на ядро ​​Linux? Или это может быть графический интерфейс Windows, который может иметь IP-адрес в качестве входа и получать доступ к ядру везде, где этот IP-адрес установлен, независимо от ОС?

Я считаю, что PR # 1107 должен помочь. Что ты думаешь, @KathyReid ,

Согласен @penrods , закрывая этот вопрос.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

ChanceNCounter picture ChanceNCounter  ·  8Комментарии

ryanleesipes picture ryanleesipes  ·  4Комментарии

krisgesling picture krisgesling  ·  5Комментарии

forslund picture forslund  ·  6Комментарии

tiagochiavericosta picture tiagochiavericosta  ·  6Комментарии