LINUX.ORG.RU

trurl 0.13

 , , , ,

trurl 0.13

1

1

15 мая состоялся выпуск 0.13 консольной утилиты trurl, написанной на языке C с использованием библиотеки libcurl. Утилита предназначена для разбора и других манипуляций с URL-адресами.

trurl – это инструмент в духе tr, но для URL-адресов:

$ trurl --url https://www.linux.org.ru/help/rules.md --get '{path}'

/help/rules.md

$ trurl --url https://www.linux.org.ru --append path=forum

https://www.linux.org.ru/forum

Список изменений:

  • освобождение выделенной памяти при ошибках OOM;
  • короткие ключи больше не требуют разделения аргумента пробелами;
  • добавление сегментов пути только при первой итерации;
  • другие мелкие исправления.

Видео-презентация (1:05:53).

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Вроде довольно полезно.

Только ман странно написан. Как-то очень многословно и «мокро», будто это не man pages, а учебник или пост на хабре.

CrX ★★★★
()

Видео-презентация (1:05:53).

Я наверное про урлы вообще ничего не знаю

LINUX-ORG-RU ★★★★★
()

Я curlie использую (аналог httpie):

❯ curlie https://httpbin.org/post foo=bar | sed -r 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/<censored>/'
HTTP/2 200 
date: Fri, 17 May 2024 20:09:54 GMT
content-type: application/json
content-length: 441
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

{
  "args": {}, 
  "data": "{\"foo\":\"bar\"}", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "application/json, */*", 
    "Content-Length": "13", 
    "Content-Type": "application/json", 
    "Host": "httpbin.org", 
    "User-Agent": "curl/8.7.1", 
    "X-Amzn-Trace-Id": "Root=1-6647b992-1339ecd36ff058e31a69023a"
  }, 
  "json": {
    "foo": "bar"
  }, 
  "origin": "<censored>", 
  "url": "https://httpbin.org/post"
}

Вот действительно полезная вещь… А не эти суррогаты курла

rtxtxtrx
()
Ответ на: комментарий от rtxtxtrx

Непонятно, причём тут сабж, и каким вообще местом он относится к суррогатам curl.


А я вот fd использую! Ищет файлы! Не то, что ваш curlie

CrX ★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

я взял почитал… то оказывается просто парсилка и заменялка урлов. короч что-то бесполезное. во всем виноват тег curl

rtxtxtrx
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от Kolins

Для скриптов бывает полезно, если питон не вариант, и надо на шелле, но при этом не хочется плясать с заклинаниями sed’а, потому что боишься случайно вызвать Сотону.

CrX ★★★★
()
Ответ на: комментарий от CrX

Хотел было предложить вызвать Сотону вместо непонятной поделки, однако оказалось, что эту утилиту разрабатывают те же ребята, что пилят curl. Возможно годная штуковина, но у меня таких задач нет.

Irben ★★★
()

Сегодня неделя сишных новостей? Жизнь то налаживается!

Vilicus
()

Годно, нужно. Сохранил себе, буду в скриптах использовать. Вот бы ещё оно питонолибой было.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

питонолибой было

urllib.parse.urlsplit, у получившегося объекта есть метод _replace, которым можно что-то заменить:

~   
❯ ipython  
Python 3.12.3 (main, Apr 23 2024, 09:16:07) [GCC 13.2.1 20240417]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.24.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from urllib.parse import urlsplit

In [2]: sp=urlsplit('https://www.linux.org.ru/news/internet/17619303?cid=17619728')

In [3]: sp._replace(path='/dev/null')
Out[3]: SplitResult(scheme='https', netloc='www.linux.org.ru', path='/dev/null', query='cid=17619728', fragment='')

In [4]: sp._replace(path='/dev/null').geturl()
Out[4]: 'https://www.linux.org.ru/dev/null?cid=17619728'

rtxtxtrx
()
Ответ на: комментарий от rtxtxtrx

urllib.parse.urlsplit, у получившегося объекта есть метод _replace, которым можно что-то заменить

Ну попробуй заменить/добавить имя пользователя, пароль или порт. Без хаков, чтобы работало с IPv6 (и вне зависимости от того, есть ли $subj там уже).

TL;DR не учи учёного, я отлично знаю, что такое urlsplit() и как он работает (а главное — как он не работает).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

с использованием библиотеки libcurl

Жирноватая зависимость для функционала такой утилиты.

Logopeft ★★
()
Ответ на: комментарий от Logopeft

С одной стороны да, с другой, много вы видели в реальном использовании систем, где не было бы curl?

CrX ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.