Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Opencart module extract (Linux shell script)

Просмотров: 10682 RSS 3
Linux » Web development » OpenCart

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

Навеяно модулем http://opencartforum.ru/topic/8272-module-extract-извлечение-модулей/, но мне показалось, что линуксоидам будет проще и удобней одной строкой в шелле это делать (локально или на сервере), без установки модуля в Opencart (установить, разрешить, зайти, найти, скопировать...)

Ни я, ни тот модуль не занимаются анализом PHP-кода и действительно полным выковыриванием всех используемых модулем файлов. Так что результат, конечно, не гарантирует полное и точное извлечение. Но будет работать в подавляющем большинстве случаев.

#!/bin/bash
# Opencart module extract
#
# Ищет введенную подстроку с начала имени файла и копирует найденные файлы
# в отдельную папку с сохранением структуры каталогов. Mодули для Opencart
# обычно используют одно и то же имя для контроллеров, моделей, view и языковых
# файлов, поэтому этот скрипт может сильно облегчить задачу по извлечению
# всех файлов модуля из рабочей копии магазина.
#
# @author: Ruslan Brest, http://rb.labtodo.com/
# @date: 2012-03-31
#
# See also: http://opencartforum.ru/topic/8272-module-extract-извлечение-модулей/
mkdir ".$1"
find -iname "$1*" | while read ff; do cp --parents -t "./$1/" "$ff"; done

Пользователям Windows полноценные линукс-радости командной строки и других полезных интструментов тоже доступны, см. например проекты http://www.cygwin.com/ или http://win-bash.sourceforge.net/

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Комментариев: 3
  1. Руслан, я не специалист по башу, но с точками у меня не работает)))

    mkdir "Название_Модуля"

    find -iname "Название_Модуля*" | while read ff; do cp --parents -t ./Название_Модуля/ "$ff"; done

    о такая рабочая версия

  2. Хех, довесок к предыдущему посту.

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

  3. 2012-06-08 в 07:19:21 | Ruslan Brest

    Точно, это я по привычке. Служебные и временные папки предпочитаю скрытыми делать. Убрал точку из имени папки.

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)