Skip to content

Instantly share code, notes, and snippets.

@klopp
klopp / commit-msg
Created Mar 25, 2020
Add branch name to commit message
View commit-msg
#!/bin/bash
NAME=$(git branch | grep '' | sed 's/ //')
MSG=$(head -n 1 "$1");
if [[ ! "$MSG" =~ "$NAME" ]]; then
echo "$NAME"' '"$(cat $1)" > "$1"
DESCRIPTION=$(git config branch."$NAME".description)
if [ -n "$DESCRIPTION" ]; then
echo "" >> "$1"
@klopp
klopp / xml-fast.pl
Last active Mar 2, 2020
Парсинг XML - V
View xml-fast.pl
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
@klopp
klopp / xml-parser-tag.pl
Last active Mar 1, 2020
Парсинг XML - IV
View xml-parser-tag.pl
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
@klopp
klopp / xml-parser.pl
Last active Mar 1, 2020
Парсинг XML - |||
View xml-parser.pl
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
@klopp
klopp / xml-twig.pl
Last active Mar 1, 2020
Парсинг XML - II
View xml-twig.pl
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
@klopp
klopp / xml-libxml.pl
Last active Feb 29, 2020
Парсинг XML - I
View xml-libxml.pl
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите скрипт, получающий в качестве параметра путь к XML-файлу и выдающий
# на STDOUT следующее:
# * суммарное число букв внутри тегов, не включая пробельные символы
# (<aaa dd="ddd">text</aaa> - четыре буквы)
# * суммарное число букв нормализованного текста внутри тегов, включая пробелы
# * число внутренних ссылок (теги <a href="#id">)
# * число битых внутренних ссылок (ссылки на несуществующие ID элементов)
View StrictRound.pm
package StrictRound;
# ------------------------------------------------------------------------------
# Обёртка для POSIX::round. Позволяет настраивать контроль входного параметра
# и реакцию на ошибки. Плюс обрабатывает ',' (или что ещё) как десятичную точку.
#
# Пример:
#
# use StrictRound qw/strict_round/, {
# allow_undef => 1, - разрешить undef и ''
View anagrams.pl
#!/usr/bin/perl
# --------------------------------------------------------------------------------
# Вход: массив слов
# Выход: отдельно сгруппировать слова, являющиеся анаграммами,
# отдельно - не являющиеся
# --------------------------------------------------------------------------------
use Modern::Perl;
use utf8;
use DDP;
@klopp
klopp / remove-r.sh
Created Nov 24, 2019
Поиск и конвертирование файлов с виндовыми переводами строк
View remove-r.sh
#!/bin/bash
SRC="."
for FILE in $(find "$SRC" -type f -regex ".*[.]\(p.\|[it]?html\|php\|cgi\|t\|js\|s?css\|feature\|sql\|yml\|json\|txt\)$")
do
R=$(grep $'\r' "$FILE")
if [ -n "$R" ]; then
echo "$FILE"
TEMPFILE=$(tempfile)
@klopp
klopp / Private.pm
Created Jul 24, 2019
Hide object fields and make accessors
View Private.pm
package Private;
use strict;
use warnings;
use Carp qw/cluck/;
use Exporter;
use base qw/Exporter/;
our @EXPORT = qw/hide_fields/;
use subs qw/hide_fields/;
our $VERSION = 1.07;
You can’t perform that action at this time.