Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Активные темы » Флудильня :) (не знаешь где спросить? спрашивай здесь!)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Флудильня :)
(не знаешь где спросить? спрашивай здесь!)

Флудильня-говорильня, Флеймоварня-отвечальня

 
Флейм, флуд, holy wars, а также о программировании вообще :)
Допускаются любые обсуждения и высказывания на тему программирования и около.
Просьба не переходить на личности и не обсуждать политику и тд...
 

Решаемые задачи:
. . . .
       
. . . .
 
 


 

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

в качестве затравки...
 
прочитал небольшую заметку о разработке советского/российского космического ПО...
и офигел...
 
оказывается почти всё ПО разработано и продолжает разрабатываться на
внимание!
на Модуле-2!
включая новую ГЛОНАСС...
о как!
 
--akaGM :)


Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 15:08 05-11-2008 | Исправлено: akaGM, 02:23 18-09-2023
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Кто-то сможет "поправить" исходники?

 
И где они?

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 13:39 23-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
И где они?

а вот же они
_https://github.com/aperezdc/ltree

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 14:22 23-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

Цитата:
ltree

А, знаю, пользуюсь.
Займусь!

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:39 23-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man

Цитата:
А, знаю, пользуюсь.  

наш человек

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 14:51 23-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Мне тоже -f не хватало.
На выходных сделаю, скорее всего.

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:57 23-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man

Цитата:
Мне тоже -f не хватало.

там по-хорошему еще кое-чего не хватает, чтобы вывод был как у mtree.

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 15:01 23-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
 
Тестируем!

Код:
diff --git a/ltree.c b/ltree.c
index 87dbded..70724aa 100644
[/color]--- a/ltree.c
+++ b/ltree.c
@@ -25,6 +25,7 @@
// These are set as result from command line parsing.
static int opt_prefix_fd = AT_FDCWD;
static int opt_print_separator = '\n';
+static int opt_dir_separator = '/';
 
typedef struct archive ArchiveRead;
typedef struct archive_entry ArchiveEntry;
@@ -80,12 +81,18 @@ static int
entry_print (struct archive_entry *e, void *d)
{
    (void) d;
+//    int res = fputs (archive_entry_pathname_utf8 (e), stdout);
+    int res = fputs (archive_entry_pathname (e), stdout);
 
-    if (fputs (archive_entry_pathname (e), stdout) == EOF ||
-        putchar (opt_print_separator) == EOF)
+    if ((archive_entry_filetype(e) == AE_IFDIR) && res != EOF) {
+        res = putchar (opt_dir_separator);
+    }
+
+    if (res == EOF || putchar (opt_print_separator) == EOF)
    {
        return errno;
    }
+
    return ENTRY_OK;
}
 
@@ -226,12 +233,13 @@ main (int argc, char **argv)
    enum action opt_action = ACTION_UNKNOWN;
    _Bool opt_verbose = false;
    char *opt_prefix = NULL;
+    FILE *fd = stdin;
 
    ptr_auto(ArchiveRead) a = NULL;
    handle_auto(DirFd) prefix_fd = AT_FDCWD;
 
    int opt;
-    while ((opt = getopt (argc, argv, "lCR0vp:h")) != -1) {
+    while ((opt = getopt (argc, argv, "lCR0vpf:h")) != -1) {
        switch (opt) {
            case '0':
                opt_print_separator = '\0';
@@ -260,8 +268,17 @@ main (int argc, char **argv)
                opt_prefix = optarg;
                break;
 
+            case 'f':
+                fd = fopen(optarg, "r");
+                if (fd == NULL) {
+                    fprintf (stderr, "Error opening '%s' file\n", optarg);
+                    return EXIT_FAILURE;
+                }
+                break;
+
            case 'h':
                fprintf (stderr, "Usage: %s [-lCR] [-0v] [-p path] < mtree\n", argv[0]);
+                fprintf (stderr, "or     %s [-lCR] [-0v] [-f file] [-p path]\n", argv[0]);
                return EXIT_SUCCESS;
 
            default:
@@ -290,7 +307,7 @@ main (int argc, char **argv)
    a = archive_read_new ();
    archive_read_support_format_mtree (a);
 
-    if (archive_read_open_FILE (a, stdin) != ARCHIVE_OK)
+    if (archive_read_open_FILE (a, fd) != ARCHIVE_OK)
        goto beach;
 
    int exit_code = EXIT_SUCCESS;
@@ -330,14 +347,25 @@ main (int argc, char **argv)
        }
    }
end:
+    if (fd != stdin)
+        fclose(fd);
+
    return exit_code;
 
beach:
    fprintf (stderr, "%s: error: %s\n", argv[0], archive_error_string (a));
+
+    if (fd != stdin)
+        fclose(fd);
+
    return EXIT_FAILURE;
 
getopt_action_err:
    fprintf (stderr, "%s: Option '-%c' invalid in '%s' mode.\n", argv[0],
             opt, s_entry_actions[opt_action].name);
+
+    if (fd != stdin)
+        fclose(fd);
+
    return EXIT_FAILURE;
[color=#000000] }

 

 
Добавлено:
Ещё вот такую нашёл https://github.com/vbatts/go-mtree
На Go.

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 10:59 25-04-2021 | Исправлено: data man, 15:47 25-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man

Цитата:
Тестируем!

$ mtree -cp ltree >ltree.mtree
$ ltree -l -f tree.mtree
.
COPYING
README.md
ltree.c
meson.build
package.json
deps
deps/autocleanup
deps/autocleanup/autocleanup.h
deps/autocleanup/package.json


Может есть смысл добавить '/' после папок? А то сразу и неясно deps и autocleanup это  
папки или нет.
 

Цитата:
Ещё вот такую нашёл https://github.com/vbatts/go-mtree  
На Go.

 
это для тех у кого mtree нет

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 13:54 25-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

Цитата:
Может есть смысл добавить '/' после папок?

Можно, конечно.
А если цветом выделять?

Цитата:
это для тех у кого mtree нет

У меня и нет. Linux-порт что-то не компилируется.


----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:12 25-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man

Цитата:
Можно, конечно.  

было бы неплохо

Цитата:
А если цветом выделять?  

если только опционально.

Цитата:
У меня и нет.

здесь один хороший человек решил вашу проблему
_https://github.com/cheusov/nbase
для пользователей Linux там не только mtree, но и другие плюшки из NetBSD.

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 14:30 25-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Обновил diff. Монохром.
Я там закомментировал archive_entry_pathname_utf8.
Если вдруг будут проблемы с нелатинскими именами, то может помочь.
Но специально не проверял.
 

Цитата:
здесь один хороший человек решил вашу проблему

Действительно, замечательный человек!
У него ещё и отличная mk-configure есть!

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 15:50 25-04-2021 | Исправлено: data man, 15:54 25-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man

Цитата:
Обновил diff. Монохром.

можете где-нибудь выложить, то ли форум ломает, то ли еще что-то.

Цитата:
Действительно, замечательный человек!

да, парень просто молодец. Насколько я понимаю в Linux некоторые из этих программ отсутствуют.

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 20:03 25-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

Цитата:
можете где-нибудь выложить

https://pastebin.com/CxLhET5E

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 20:23 25-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man
все в порядке.  

Цитата:
Если вдруг будут проблемы с нелатинскими именами, то может помочь.  

вроде как не было, но вдруг встретятся
mtree с nbase собрался?

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 20:42 25-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

Цитата:
mtree с nbase собрался?

Ещё как! Осваиваю.


По поводу tarsum.
Не совсем понял пользу от вывода только суммы.
А для '-r' сделать "%C %N\\n"?
 
И появилась мысль использовать для расчёта сумм rhash (как библиотеку).
Нужно-не нужно?

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 20:54 25-04-2021 | Исправлено: data man, 20:58 25-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man

Цитата:
Ещё как! Осваиваю.

отличная вещь плюс в этой версии есть ключи '-C' и '-D' - дают достаточно удобный формат для обработки если есть в этом надобность.
 

Цитата:
А для '-r' сделать "%C %N\\n"?

да, сейчас это по умолчанию, но мне более привычен для этого '%A (%N) = %C\n'
 
обратили внимание что программа поддерживает '-s' как pax и bsdtar?
 
Добавлено:

Цитата:
И появилась мысль использовать для расчёта сумм rhash (как библиотеку).  

не самая быстрая библиотека, но можно попробовать для расширения форматов, но если есть желание с возможностью отката или с использованием libmd.

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 21:03 25-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los

Цитата:
'%A (%N) = %C\n'

Может, добавить -b для этого формата, а по-умолчанию оставить прежний?
 

Цитата:
обратили внимание что программа поддерживает '-s' как pax и bsdtar?

Нет, настолько не углублялся.
 

Цитата:
не самая быстрая библиотека

Зато большой выбор чексумм.

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 22:03 25-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man

Цитата:
Может, добавить -b для этого формата, а по-умолчанию оставить прежний?  

'-b' для base64 вдруг получится
%A (%N) = %C\n'  по умолчанию, а прежний на '-r'

Цитата:
Зато большой выбор чексумм.

я только за. Единственно что смущает скорость rhash  в сравнение с open(libre)ssl и libmd, Нужно будет проверять, но в rhash уже заложены функции проверки сумм из файла и base64 notation, там поддерживается проверка как gnu sha256sum формата так и BSD, плюс BSD с base64 notation.

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 22:19 25-04-2021
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем, там чуть сложнее заморочки.
Завтра доделаю.

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 22:41 25-04-2021
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Завтра доделаю.

как успехи?

Всего записей: 7322 | Зарегистр. 08-09-2001 | Отправлено: 12:54 26-04-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Активные темы » Флудильня :) (не знаешь где спросить? спрашивай здесь!)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru