Эмулятор терминала

15 000
Всем привет!
По планам осталась у меня одна задумка для AdminTools — эмулятор терминала. Начав реализацию понял, что задача сложнее, чем казалась изначально. Поэтому решил выделить её в отдельный пакет.


Но уже понимаю, что разработка выльется минимум на неделю, потом ещё тестировать, поддерживать, писать доки… Поэтому решил, что если найдётся 100 человек, которым это интересно и которые готовы инвестировать 150 руб. в этот проект, то быть этому пакету. А если нет, то у меня есть чем заняться.
Что планировал в терминале.
  • create object -f:path/to/file, где объект — чанк, сниппет, плагин, шаблон, ресурс, категория, файл, пользователь, группа пользователей и т.д. Для элементов можно сразу создать статический файл.
  • rename object name|id newName — переименование объекта.
  • copy object name|id newName — копирование объекта.
  • delete object name|id — удаление объекта, системной настройки, пакета.
  • open object — открыть объект.
  • set systemSetting value — определение системной настройки.
  • get systemSetting — получить значение системной настройки.
  • install packageName -p:privider — установка/обновление пакета.
  • uninstall packageName — деинсталяция пакета.
  • clear cache -key — удаление кеша (целого или только указанного, например, lexicon).
  • clear log — очищение лога ошибок.
  • export db — выгрузка базы данных.
  • export table tableName — выгрузка таблицы.
  • import table tableName — импорт таблицы.
  • refresh tree — обновление дерева без перезагрузки страницы.
  • grand user — работа с правами.
Чего-то ещё в процессе всплывёт.
Сбор инвестиций тут.

В общем решение оставляю на вас. )

Обновлено.
Нашлось уже 9 заинтересованных, которым понравилась идея!
Собрано 4716 руб.

П.С. Вот что получилось за полтора дня разработки. Из них полдня на пакет и причёсывание. На этом мой энтузиазм кончился. Остальное требует много времени. Желающих писать руками, а не кликать мышкой, немного. Им и вышлю данную версию. Я, кстати, тоже не поклонник, но всякие npm, composer и т.п. требуют навыков. Вынужден подчиняться. Прямо как в известном стишке-пирожке
Аркадий не любил пробежки,
экстрим, паркур, адреналин,
но 2 соседских добермана
раскрыли в нем потенциал.


Update 04.11.2016. Как и обещал щедрым спонсорам (Владимиру и Леониду) сделал управление пакетами пока в простом варианте без зависимостей и локальных пакетов. При установке можно указать репозиторий. Если не указать, то устанавливаться будет из modx.com. Вот что получилось.

Кстати, обнаружил баг в механизме деинсталяции пакетов.
Ну и по мелочи. Теперь есть прокрутка к последней команде и команды в командной строке можно перебирать стрелками «Вверх» и «Вниз» на клавиатуре.
Сергей Шлоков
27 октября 2016, 19:53
modx.pro
2
3 973
+6
Поблагодарить автора Отправить деньги

Комментарии: 62

Здоров Александр
27 октября 2016, 23:14
+1
интересное дополнение, внес копеечку в разработку
P.S. install packageName -p:privider — установка/обновление пакета — если позволит установить несколько пакетов то замечательно
    Сергей Шлоков
    27 октября 2016, 23:19
    0
    Получил. Осталось 99 )
    если позволит установить несколько пакетов то замечательно
    Думаю это не сложно.
      Здоров Александр
      27 октября 2016, 23:28
      0
      не уверен что такая толпа соберется, но надеюсь все же не пропадет идея даром? выйдет некая «урезанная» версия?
      которая на платной основе будет дальше расширяться
        Сергей Шлоков
        28 октября 2016, 07:20
        0
        Если из более полутора тысяч посетителей не найдётся ~ 100 заинтересованных человек, то для кого тогда это делать? Конечно, если, например, 5 человек соберут всю сумму, то я вынужден буду сделать. Но хочется увидеть единомышленников.
        Платным я его делать не хочу.
        выйдет некая «урезанная» версия?
        Возможно. 2-3 простых команды.
      Сергей Шлоков
      30 октября 2016, 17:55
      0
      Проверяй почту.
        Здоров Александр
        31 октября 2016, 10:13
        +1
        большое спасибо, надеюсь народ подтянется, компонент удобный даже на этом этапе
          Сергей Шлоков
          31 октября 2016, 10:38
          +1
          Думаю, самые интересные команды — create и install package. Можно создать, например, чанк сразу с файлом на диске. Или из командной строки установить несколько пакетов. Но это сложные для разработки команды. Особенно установка пакетов — зависимости всякие и т.п.
          надеюсь народ подтянется
          или отожмётся. :)
      Владимир
      28 октября 2016, 00:49
      +2
      Ловите «за двоих» :)))
      Однако, размер взноса «на брата» не велик, но будет ли столько «братьев»?
      Видимо надо карусель организовать, позаимствовать, так сказать, технологию успеха.
        Сергей Шлоков
        28 октября 2016, 07:21
        0
        Прилетело.
        но будет ли столько «братьев»
        На нет и суда нет. )
          Владимир
          28 октября 2016, 08:03
          0
          Инертность масс и прочие чудеса бытия могут все свести на нет, а это же не означает что идея плоха. Потому, на днях закину за «десятерых».
          хочется увидеть единомышленников.
          -они так или иначе есть, просто в нужный период могут не собраться (в виду вышеуказанных причин).
            Сергей Шлоков
            28 октября 2016, 09:03
            0
            Инертность масс и прочие чудеса бытия могут все свести на нет
            Запрягал, запрягал, а лошадь сдохла. :)

            Как в Ералаше:
            — Серега, выходи.
            — Щас…
              Владимир
              28 октября 2016, 10:24
              0
              Как-то, где-то, была озвучена «формула», как принимает общество новые идеи, звучала примерно так: стадия 1. «Какая чушь!», стадия 2. «в этом что то есть… », стадия 3. «да кто же этого не знал?!»
              Я к тому, что идея выношенная автором не может вот так сразу даже явных заинтересованных «заразить», да так, что бы еще материально отреагировали. Ну, как бы, это же касается любой сферы. В итоге, активность сбора средств или выражения заинтересованности эмоциями, не отражает ни чего. Время, на все нужно время.
                Сергей Шлоков
                28 октября 2016, 11:55
                +2
                Ты про окно Овертона?
                Немыслимое > Радикальное > Приемлемое > Разумное > Стандартное > Нормальное.
                  Владимир
                  28 октября 2016, 11:59
                  0
                  Ну, оно тоже про продвижение идей, но я об идеях обычных, не деструктивных :))
                Владимир
                31 октября 2016, 11:04
                +2
                закинул еще за «десятерых» ))
                *********************
                Попробовал Эмулятор терминала в работе, очень понравился!

                Призываю поддержать!
                  Сергей Шлоков
                  31 октября 2016, 11:06
                  0
                  Вот ты неугомонный :)
                    Владимир
                    31 октября 2016, 11:10
                    +2
                    Так ВЕЩЬ же!!!
                    Подумал, а вот рутинные действия, например удаление устаревших пакетов и т.п., массовое изменение настроек… Как бы это облегчило администрирование.
                    Очень хорошая идея, Сергей! Реально, жаль если она останется непонятой.
                    Спасибо.
                      Сергей Шлоков
                      31 октября 2016, 11:21
                      +2
                      Да придумать ещё много чего можно было. Например, run «task» — запуск сниппета, который используется как утилита — задачи по сайту выполняет. Боб Рей про это писал.
            Сергей Шлоков
            30 октября 2016, 17:55
            +1
            Проверяй почту.
            Евгений Webinmd
            28 октября 2016, 10:53
            0
            Было бы удобно добавить что-то типа «export files/patch» (или make archive)
            Есть какой-то другой способ поддержки (qiwi например)? а то что-то из нашей страницы карту не принимает
              Сергей Шлоков
              28 октября 2016, 11:25
              0
              Там много чего ещё добавить можно. В процессе работы ещё много мыслей и предложений всплывёт.
              Есть какой-то другой способ поддержки (qiwi например)?
              К сожалению нет.
            Дмитрий Кондаков
            28 октября 2016, 11:41
            +1
            Поддержал
            Klike
            28 октября 2016, 12:57
            +1
            Поддержал)
            Сергей Шлоков
            30 октября 2016, 18:11
            +1
            Обновил описание.
              Владимир
              30 октября 2016, 18:19
              +2
              Спасибо! Интересный инструмент, хотелось бы верить в развитие и в то что «народ подтянется».
                Сергей Шлоков
                31 октября 2016, 09:53
                +2
                Он расширяемый. Каждая команда в отдельном процессоре. Программистам не составит труда добавить свои команды.
              Павел
              31 октября 2016, 15:29
              +3
              +1
              Василий Столейков
              01 ноября 2016, 08:00
              1
              0
              Перепробовал несколько моих карточек (нероссийские), система не принимает их. Жаль что нету возможности через те же ЯД оплатить…!
                Сергей Шлоков
                01 ноября 2016, 08:06
                +1
                Что такое ЯД?
                  Василий Столейков
                  01 ноября 2016, 08:08
                  1
                  0
                  )))))
                  ЯД == Яндекс Деьги.
                  Интересно что хотя Яндекс и обрабатывает карточный платеж, но со своего счёта на ЯД не нашел как оплатить…
                    Василий Столейков
                    01 ноября 2016, 08:09
                    1
                    0
                    А, сейчас попробовал снова, там оказывается есть незаметная кнопка-переключатель на кошелёк, сорри…
                      Сергей Шлоков
                      01 ноября 2016, 08:10
                      0
                      Только хотел написать. Почему-то её часто не замечают.
                        Василий Столейков
                        01 ноября 2016, 08:12
                        1
                        +1
                        Наверное потому что по умолчанию нажата карточная кнопка…
                        Вложил и свою скромную лепту, жаль что через ЯД пока не могу больше…
                          Сергей Шлоков
                          01 ноября 2016, 08:14
                          +1
                          Получил и расписался.
                            Василий Столейков
                            01 ноября 2016, 08:17
                            1
                            +1
                            О, круто, он даже полупрозрачный, прямо как в Linux-е, линукс за эту плюшку особенно полюбил!
                            Аж настальгией понесло, спасибо…
                              Василий Столейков
                              01 ноября 2016, 08:19
                              1
                              0
                              Интересно, а при запущенной команде help другие команды не срабатывают пока не очистишь экран? Не сразу в это врубился, было бы удобно без очистки вводить следующую команду…
                                Сергей Шлоков
                                01 ноября 2016, 08:25
                                +1
                                )) Просто команды пишутся в конец и их не видно. Нужно промотать. Наверно лучше писать их наверх.
                                  Василий Столейков
                                  01 ноября 2016, 08:26
                                  1
                                  0
                                  ага, строка для ввода наверху, так логичнее будет…
                                    Сергей Шлоков
                                    01 ноября 2016, 08:29
                                    +3
                                    или автоматически проматывать. Всё-таки привычнее внизу, все терминалы так работают. Надо подумать.
                                    Владимир
                                    01 ноября 2016, 08:44
                                    +2
                                    или автоматически проматывать
                                    — голосую «за!»
                                    Василий Наумкин
                                    01 ноября 2016, 09:00
                                    +3
                                    У нас в просмотре журналов на modhost.pro сделано примерно так:
                                    if (response.success) {
                                    	$textarea.text('');
                                    	$textarea.text(response.object['log']);
                                    	$textarea.animate(
                                    		{scrollTop: $textarea.prop('scrollHeight')}, 				
                                    		200
                                    	);
                                    }
                                    При получении ответа от сервера очищаем ввод, вставляем ответ и скроллим его вниз.
                                    В терминале, думаю, лучше ответ добавлять к уже имеющимся строкам — через append()
                                    Сергей Шлоков
                                    01 ноября 2016, 09:05
                                    +2
                                    При получении ответа от сервера очищаем ввод, вставляем ответ и скроллим его вниз.
                                    У меня также. На видео видно.
                                    Ext.getCmp(config.id+'-commandline').setValue('');
                                    ...
                                    outputEl.appendChild(newEl);
                                    outputEl — окно-контейнер результатов.
                                    newEl — новый элемент p.
                                    Осталось скролл прикрутить.
                          Василий Столейков
                          01 ноября 2016, 08:13
                          1
                          0
                          Спасибо, получил на почту!
                  Leonid Krylov
                  01 ноября 2016, 15:05
                  +7
                  От Modstore «за десятерых»!
                    Сергей Шлоков
                    01 ноября 2016, 16:03
                    +4
                    Неожиданно! Так как жду отклика от админов. Вечером постараюсь сделать управление пакетами. Как сделаю вышлю бету вам и Владимиру как самым щедрым спонсорам. :)
                    Воеводский Михаил
                    03 ноября 2016, 10:08
                    +3
                    За троих )
                    Сергей Шлоков
                    04 ноября 2016, 08:46
                    +1
                    Добавил видео с пакетами.
                      Здоров Александр
                      10 июля 2017, 22:51
                      0
                      пакет увидит свет или нужно «добавить» для получения последней версии
                      UPD: есть ли что-то похожее для работы из под IDE phpStrom (в частности создание TV, Шаблонов и прочего, когда одними файлами уже не обойдешься)
                        Igor Ivanov
                        11 июля 2017, 08:12
                        +2
                        Для Sublime Text есть плагин ModxElements, позволяет из редактора создавать/редактировать шаблоны, чанки, сниппеты, плагины. Очень удобная штука.
                          Дмитрий Кондаков
                          11 июля 2017, 09:37
                          0
                          Годная вещь, спасибо за подсказку!
                            Владимир
                            11 июля 2017, 10:46
                            0
                            Для Sublime Text есть плагин ModxElements
                            — ай, спасибо!
                          ck
                          ck
                          10 февраля 2018, 14:59
                          0
                          Подскажите, где можно скачать приложение?
                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                          62