Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

Golang: Go in Practice — заметки на полях, часть 2 — CLI приложение на Go

14 февраля 2019
 

 Предыдущая часть — Golang: Go in Practice – заметки на полях, часть 1 – введение. Стандартная библиотека Go включает в себя пакеты для создания приложения с поддержкой опций командной строки. В отличии от стандартных, принятых в Linux/BSD, стилей — в пакете из стандартной библиотеке Go используются одинарные или двойные дефисы как взаимозаменяемые. Т.е. тут не… Читать далее »

Golang: unrecognized import path «math/bits» (import path does not begin with hostname)

12 февраля 2019
 

 При импорте пакета — возникает ошибка вида «unrecognized import path «math/bits» (import path does not begin with hostname)«. Гуглим, находим обсуждение тут>>>, радуемся, что в репозиториях Debian 9 последняя доступная версия 1.7. Проверяем версию Go: Выполняем установку вручную. Удаляем установленный пакет: Со страницы загрузок — загружаем архив с новой версией, распаковываем его: Перемещаем каталог go… Читать далее »

Golang: Go in Practice — заметки на полях, часть 1 — введение

4 февраля 2019
 

 Ещё весной начал учить Go, но потом перешёл на новую работу, забот и без того хватало, и Go забросил. Тем не менее — встречается он сейчас много где (Docker, Prometheus, Terraform etc), а потому знать его желательно. Да и вообще — иногда надо поучить что-то новое, ибо становится скучно. Попробую вести «конспекты» книги Go in Practice … Читать далее »

C: отладка с gdb — примеры

30 января 2019
 

 gdb (GNU Project Debugger) используется при отладке/дебаге кода. Ниже приводятся примеры работы с кодом на С. Используем такой код: #include <stdio.h> #include <string.h> #include <stdlib.h> char * buf; int sum_to_n(int num) { int i,sum=0; for(i=1;i<=num;i++) sum+=i; return sum; } void printSum() { char line[10]; printf(«Enter a number: «); fgets(line, 10, stdin); if(line != NULL) strtok(line, «\n»);… Читать далее »

C: libmysqlclient — примеры работы с MySQL API

29 января 2019
 

 Давно не писал на С (последний раз — почти год тому, см. What is: Linux namespaces, примеры PID и Network namespaces). Немного за ним заскучал, ибо язык интересный и заставляет местами поломать голову, потому решил немного освежить память. Ниже приводятся примеры работы с сервером MySQL/MariaDB на С, используя API из библиотеки libmysqlclient. Примеры взяты из поста MySQL… Читать далее »

Golang: struct — структуры в примерах

28 ноября 2018
 

 Структура — это коллекция типизированных полей, т.е. у кождого поля в структуре есть свой тип данных. Создать структуру можно следующим образом: type Example struct { FirstField string SecondField string ThirdField int } Тут у структуры с именем Example есть коллекция полей — поля FirstField и SecondField типа string, и поле ThirdField типа integer. Если различные поля имеют одинаковый… Читать далее »

Vim: плагины supertab и vim-devicons

26 ноября 2018
 

 В продолжение поста vim: превращаем редактор в “IDE” – плагины и вот это вот всё — ещё пара полезностей для vim. supertab supertab вызывает автоподстановку по нажатию кнопки <TAB>, вместо комбинаций типа Ctrl+O/Ctrl+X. Добавляем в .vimrc: … » https://github.com/ervandew/supertab Plug ‘ervandew/supertab’ … Перечитываем его, и устанавливаем: Для настройки плагина есть много опций, основные, которые могут пригодиться,… Читать далее »

AWS: s3fs — Permission denied

22 ноября 2018
 

 После начала использования s3fs — выяснилась одна деталь. Файлы загружаются с помощью boto3. Но после того, как корзина смонтирована к системе — получить доступ к файлам нельзя: Проверяем права на файлы — и ой: И сменить права через chmod тоже не получится: Решение — задавать права доступа через Metadata, при загрузке данных в корзину. См.… Читать далее »

BASH: скрипт бекапа /home с уведомлениями

12 октября 2018
 

 Задача — написать скрипт для домашней машинки, что бы создавать бекапы по расписанию используя rsync, с уведомлениями на почту и в трее. Бекапы хранятся на отдельном жестком диске. Описание настройки отправки почты пользователю есть в посте Arch Linux: ssmtp – отправка локальной почты. Ниже — процесс написания такого скрипта с примерами функций. Сам скрипт доступен в… Читать далее »

Jenkins: Allure reports plugin в Scripted pipeline

26 сентября 2018
 

 Allure — фреймворк для создания репортов о результатах выполнения тестов. Для Jenkins имеется плагин allure-jenkins-plugin, который сегодня и будем подключать в Scripted Pipeline Jenkins-а. Документация тут>>> и тут>>>. Устанавливаем плагин: Переходим в http://jenkinsurl/configureTools/, настраиваем Allure Commandline: Переходим в http://jenkinsurl/pipeline-syntax/, и генерируем скрипт: В результате весь скрипт наших автотестов выглядит сейчас так: #!/usr/bin/env groovy node { stage(‘Run tests’) { dir (‘ciscripts’)… Читать далее »