Вы просматриваете архив Трюки.

Загрузка данных по FTP с использованием Mercurial

03.01.2012 в Трюки

На сегодняшний день редкий проект по разработке ПО обходится без использования системы контроля версий. Без нее достаточно сложно отследить, когда в код были внесены какие изменения, вернуться к предыдущей версии, разобраться, кто из разработчиков написал определенный фрагмент кода.

В частности это относится и к веб-проектам. Здесь у системы контроля версий есть еще одна очень важная задача — заливка кода на сервер. Когда мы по-старинке заливали файлы на сервера простым копированием файлов, достаточно сложно было каждый раз вспоминать, какие файлы изменились и должны быть перезалиты на сервер. При использовании системы контроля версий (например Mercurial) эта проблема с наших плеч спадает: мы создаем на сервере копию репозитория (не забыв запретить доступ через HTTP к директории .hg) и простым выполнением команды hg push можем обновлять код на сервере. При этом доступ к серверу мы можем осуществлять, например, по протоколу SSH.

Что же делать, если мы используем дешевый хостинг, который предоставляет доступ на свой сервер только по FTP? Разумеется по FTP загрузить репозиторий Mercurial обычным способом не получится.

Для таких ситуаций существует расширение для Mercurial, называемое FTPExtension.

Опишу пошагово процесс установки и использования расширения:

  1. Создаем директорию, куда будет загружено расширение. Загружаем расширение следующей командой:
    hg clone https://bitbucket.org/misery/hgftp
  2. Открываем файл кофигурации ~/.hg/hgrc (в данном случае мы редактируем общую конфигурацию пользователя, которая будет использоваться для всех репоизториев, с которыми он работает; тоже самое можно сделать и для файла .hgrc конкретного репозитория). Добавляем туда следующие строки:
    [extensions]
    hgext.ftp = /path/to/ftp.py
  3. В файле .hgrc прописываем адрес ftp-сервера:
    [paths]
    deploy = vasya:123@myfavoritehosting/my_site_directory
  4. После этого текущую ревизию можно будет загрузить на сервер следующей командой (история изменений на сервер загружена не будет, так что резервную копию храним в другом месте):
    hg ftp -u deploy
  5. Обратите внимание, что если мы раньше уже загружали этот проект на этот сервер, то сейчас будут загружены только изменившиеся файлы. Если мы хотим, чтобы загрузились все файлы, добавляем ключ -a:
    hg ftp -au deploy

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

  1. Введение в Mercurial
  2. FTP Extension
  3. Using Mercurial Extensions

© Григорий Кощеев, lug.nsk.ru, 2012 г.
Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons Attribution-ShareAlike (Атрибуция — С сохранением условий) 3.0 Непортированная.

Запрет пользователям выключать/перезагружать компьютер при помощи PolicyKit

28.12.2011 в Трюки

Не вдаваясь в подробности, откуда есть пошло у меня желание такое сварганякать просто расскажу, как это сделать. Читать далее →

Просмотр русскоязычных ZIP-архивов

01.11.2011 в Первые шаги, Трюки

Иногда возникает необходимость просмотреть ZIP-архивы в русскоязычной кодировке. И вместо имён файлов мы видим непонятный набор — символы-крякозябвы, даже распаковать которые не представляется возможным. Конечно, можно попробовать запуск 7zip под wine, но это недостойный путь для настоящих линуксоидов. Также был испробован вариант архиватора PeaZIP, но даже самая последняя версия 4.1 с сайта разработчиков тоже не решила всех проблем, да и настроек на кодировку кириллицы CP866/CP1251 там нет.

Читать далее →

Настройка APT — выбор языка описания пакетов

18.10.2011 в Трюки

Несколько лет назад в проектах Debian и Ubuntu началось активное движение в сторону перевода всех описаний пакетов на русский язык. Сейчас переведаны описания к значительной части пакетов. С одной стороны, это хорошо, так как позволяет работать с пакетами людям на их родном языке. С другой, многие пакеты всё ещё имеют только английские описания. Использовать поиск по описаниям пакетов в таких условиях становится очень неудобным. К тому же, многие русские переводы названий пакетов не отличаются качеством. Поэтому я предпочитаю пользоваться только английскими вариантами описаний. Далее я расскажу, как дать APT понять, что вы хотите того же.

1. Создаём новый конфигурационный файл apt, что-нибудь вроде /etc/apt/apt.conf.d/99translations
2. Добавляем туда строку слудующего содержания:
Для новых (начиная со Squeeze) дистрибутивов:

Acquire::Languages "en";

Для старых:

APT::Acquire::Translation "en";

3. Выполняем

sudo apt-get update

Всё! Больше русские описания к пакетам использоваться не буду.

Пакман в пакмане (пасхальные яйца)

20.06.2011 в Программы, Трюки

Случайно столкнулась с ArchBang - дистрибутив, основанный на ArchLinux с Openbox в качестве дефолтного WM. Но разговор пойдёт совсем не о нём. Просто я там нашла одну забавную мелочь, которую захотелось перенести на свою основную систему. Состоит она в следующем:
Когда pacman синхронизирует репозитории, скачивает и устанавливает пакеты, в конце каждой строки рисуется "прогрессбар". Обычно он выглядит как-то так:

[#################------]
То есть по мере выполнения процесса количество решёток в строке увеличивается. А в арчбэнге эти прогрессбары пытались имитировать игру "пакмэн" примерно так:
[----C o  o  o  o  o  o ]
Буква "C" продвигаясь вправо "кушает" буквы "o", она при этом ещё и "рот открывает" (постоянно меняется со строчной на заглавную).
Ерунда, но такая милая. Оказалось, это "пасхальное яйцо" и делается очень просто.
Открываем файл /etc/pacman.conf с правами суперпользователя и дописываем строчку ILoveCandy (можно в разделе Misc options).
Читать далее →

Запуск приложений в отдельном X-сервере

20.06.2011 в Программы, Руководства, Трюки

тобы запустить приложение в отдельном X-сервере, используется команда вида:

startx /path/to/application -- :1
То есть набрав такую команду в консоли (не эмуляторе терминала, а именно tty1, например), мы попадём во второй X-сервер, где будет работать нужное приложение. Переключаться в него можно сочетанием клавиш Ctrl+Alt+F8 (соответственно, следующие виртуальные дисплеи получим по Ctrl+Alt+F9 и так далее; а самый первый X-сервер запускается на нулевом дисплее и переключаться в него можно по Ctrl+Atl+F7).
Вместо /path/to/application нужно вставить полный путь к исполняемому файлу, например не firefox, а /usr/bin/firefox.

Зачем это может понадобиться, применимо к браузеру, не могу придумать, но мало ли у кого какие запросы. Но есть вполне конкретные причины, по которым может быть удобно запускать таким образом полноэкранную игру, например. Читать далее →

Grub2: Как перезагрузиться из одной системы в другую

17.05.2011 в Трюки

Статья навеяна…
Если у вас возникли вопросы при прочтении заголовка, поздравляю, должны были.
Если у вас на компьютере стоит Grub2, который загружает 2-3-4, а то и 5 систем, и вам нужно перезагрузиться из одной в другую? Ответ прост — перезагружаемся, выбираем нужную систему в Grub2 и загружаемся в новую? И ждём всё это время над клавиатурой?

Читать далее →

Значки запуска программ на tint2

15.05.2011 в Программы, Трюки

Писала уже не раз о панели tint2. Сейчас у неё появилась новая фича в виде возможности добавить значки запуска приложений - ланчер.
Доступна возможность пока только в svn-версии и настраивается исключительно руками из конфигурационного файла (в смысле в tintwizard поддержки нет).
tint2 launcher

Читать далее →

КДЕ. Долой мышекликательство, даёшь мышедвигательство!

03.05.2011 в Руководства, Трюки

Что такое GUI в понимании среднестатистического пользователя и чем он так приелся? В понимании того самого пользователя это интерфейс, в котором есть окошки и кнопочки, а так же специальный указать, который надо наводить на эти самые окошки и кнопочки при помощи манипулятора типа мышь и кликать по ним какой-то из кнопок указанного манипулятора. Посему наши доблестные пользователи, судорожно вцепившись в несчастное животное, пыхтя и наматывая километры мушепути старательно целятся в кнопки разных размеров, форм и положений. И ладно если у них за плечами пара лет чемпионатов по Quake и они могут попасть в заветный пиксель с той же точностью, с которой зашибают фраги из реилгана, а если нет?

Ну ладно, многим невдомёк, что практически у всех программ есть возможность делать те же действия нажатием клавишь на клавиатуре. Впрочем, есть и те, кто считают, что клавиатура это фи, а все передовые технологии взаимодействия с компьютером сосредоточены в мышке. Я этого не понимал и активно изучал возможности клавиатуры, попутно уча емакс варить кофе. Читать далее →

Протоколирование логинов

02.05.2011 в Трюки

Была небольшая задачка — получать информацию о последних логинах на компах в сети. Возможно кому-нибудь придется столкнуться с такой же проблемой, поэтому выложу тут свое решение, мож пригодится.

Смысл таков: на одном из компов настраиваем доступ по ssh к другим компам, желательно, чтобы все автоматизировать, настроить доступ по сертификатам (как это делается объяснять не буду, в инете на этот счет информации предостаточно, нет там ничего сложного), после чего удаленно утилитой last собирать информацию о залогинившихся, парсить вывод и сохранять все в единый файлик html, который можно будет просмотреть в боле менее удобном виде в браузере.

Для этого пишем скриптик вроде этого.

Запускать можно это следующим способом:

./stat.sh > /tmp/stat.html (не забыть выставить права на запуск скрипта)

ну и далее смотреть в любимом браузере

firefox /tmp/stat.html