Постоянная ссылка

Работа с частными репозиториями из Goland (Golang) 2

Golang по умолчанию работает с https протколом. Поэтому с настройками по умолчанию возникает ошибка ниже.

Что бы заставить его использовать http при работе частными репозиториями неободимо прописать авторизацию через файл $HOME/.netrc

При возникновении следующей ошибки:

необходимо в самописном модуле который импортируем и который расположен в приватном репозитории прописать правильное именование. Вместо module spacevm-go необходимо писать полный путь до приватного модуля module gitlab.space.team/dev/spacevm-go.

Постоянная ссылка

Работа с частными репозиториями из Goland (Golang)

Golang и линейка продуктов JetBrains, куда входят Goland и Pycharm, ориентированны на работу с внешними сервисами, такими как github. GitHub работает по https протоколу, для менеджера пакетов golang необходима система контроля версий, поддерживающая https протокол, иначе он не захочет качать пакеты.

Во множестве организаций использутся внутренние репозитории кода. У нас код хостится на внутреннем сервере Gitlab. При этом https не используется, используется http. При импорте модулей в пакет при разработке на golang возникает проблема:

При попытке импорта, Goland пишет:

Что делал что бы побороть ошибку:

* запилил самоподписанные сертфикаты для Gitlab, не помогло:

* экспериментировал с git на локальном хосте как здесь, не помогло:

* поспал, начал читать разное про модули, в итоге набрел на «Go Modules Reference», помогло:

В настройках проекта Goland устанавливаем переменные с исключениями из внутренних серверов и удаляем старые версии модулей в консоли:

Может потребоваться перезапуск Goland. Модули нормально импортировались:

Постоянная ссылка

Автоматизация скачивания музыки и переименования файлов mp3 с сайта студии Лебедева.

Музыкальный набор манит на сайте Лебедева — https://www.artlebedev.ru/dj/. Очень не хотелось возиться с плейером на сайте, так он ужасен, почему-то, чуть меньше, чем полностью. Особенно, когда я слушал самые старые треки. Что бы до них добраться нужно было полностью спуститься вниз страницы. С учетом того, что она сделана с использованием технологии ajax, нужно тупо ждать, зажав клавишу «Page Down». Даже когда я до них добирался, не все треки воспроизводились. Да еще это уведомление про куки, которое загораживает прогресс бар плейера. Я обескуражен, почему так все плохо сделано, на ведущем сайте в Рунете, посвещенном разработке сайтов. Если кто то меня услышит, то плейер нужно переработать, потому что он никуда не годится. Хотя, может быть, я ничего в этом и не понимаю. В общем, хотелось скачать всю музыку разом, и не париться. Пришлось привлечь наших фронтендеров и провести расследование.

Результатом расследования явился — скрипт для скачивания mp3

Далее, возникла проблема с именами файлов. Скрипт запускался несколько раз, а wget имеет привычку дописывать у одинаковых файлов в конце (2), (3) и т.д. Убираем лишнее в консоли.

Подсказка 1: Если повторять мое расследование, то с оригинальными данными выдернутыми с сайта, при скачивании файлов, произойдет ошибка на файле с id 404. Это очень символично)) Я воспринял это как пасхалку. В моем скрипте данные уже поправлены.

Подсказка 2: На всякий случай напишу, что полное собрание сочинений, на момент поста, 112 Гб.

Постоянная ссылка

OpenVPN на сервере со множеством сетевых интерфейсов.

При настройке OpenVPN сервера в контейнере существует два сетевых интерфейса:

Для корректной работы, нужно в конфиг прописать параметр «multihome», иначе будет иметь значение порядок сетевых интерфейсов. Без этого параметра, OpenVPN сервер выбирает какой либо сетевой интерфейс интерфейсом по умолчанию. При получения пакета из другого сетевого интерфейса, отправляет ответ в интерфейс по умолчанию. С параметром «multihome» с какого интерфейса пришел пакет туда и уйдет ответ. Вроде бы, так должно быть, с точки зрения здравого смысла, но оказывается, для этого нужен отдельный параметр.

Постоянная ссылка

Экранирование симоволов в groovy (jenkins pipeline)

В задании Jenkins есть такое определение:

Возникает ошибка когда идет попытка выполнить echo «$PLAN»:

Происходит это из-за особенностей интерпретации кода в Jenkins. Для строк с двойными кавычками, groovy процессор будет преобразовывать строку первым. И только после преобразования переменных groovy, преобразованием переменных займется bash.

it, PLAN, CHANGES переменные среды исполнения (runtime variable) shell нежели переменные среды исполнения groovy. Groovy не может найти соответствующие переменные из стэка переменных для замены it, PLAN, CHANGES во время преобразования переменных.

Поэтому нужно экранировать все «$» если используется двойные кавычки в данном случае.

Или использовать одиночные кавычки, которые не используют преобразования:

https://stackoverflow.com/questions/51659231/groovy-escape-double-quoted/51662852

https://stackoverflow.com/questions/59171237/jenkins-script-console-can-i-use-jenkins-pipeline-dsl-in-script-console