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

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
2
2 813
+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
    Подскажите, где можно скачать приложение?