• # Le format du fichier de sortie

    Posté par . En réponse à la dépêche CARE et la reproductibilité des exécutions. Évalué à 5.

    Tout d’abord, je suis fan, et je trouve cela génial.

    Par contre il y a des points qui me dérangent dans le format du fichier de sortie.

    Déjà, le choix de binaire auto-extractible, je trouve cela inutile, et non usuel, mais soit. Tu propose le format tar, et je t'en remercie. Par contre, ce qui est mal c'est que tu fais le choix du format avec le nom de fichier.

    Par exemple, si je veux faire une compression xz à la volée, je hais les fichier temporaires, je suis obligé de faire un:

    [terminal 1] $ mkfifo /tmp/truc.tar
    [terminal 1] $ cat /tmp/truc.tar | xz > /tmp/truc2.tar.xz ; rm /tmp/truc.tar
    

    et

    [terminal 2] $ care -o /tmp/truc.tar some_stuff
    

    Si tu supportais une option du genre format, ayant priorité sur l'extension pour choisir le format, je pourrais faire un truc du genre

    [terminal] $ care -f tar -o >( xz > /tmp/truc.tar.xz ) some_stuff
    

    C'est quand même plus élégant !

    En plus en travaillant de cette manière (et en documentant) tu n'as même plus à gérer la compression, il faut juste que les utilisateurs apprennent à utiliser leur shell.

    Tu pourrais me répondre que procéder ainsi rajoute de la latence et c'est inutilisable, mais c'est juste pour l'exemple. Car en vrai j'utiliserai plutôt un truc du genre

    [terminal] $ care -f tar -o >( bufcat | xz > /tmp/truc.tar.xz ) some_stuff
    

    avec bufcat un truc qui envoie stdin sur stdout (énorme!) mais en mettant en cache quand stdin est plus rapide que stdout pour ne pas bloquer le processus émetteur. Je viens de tester avec la méthode fifo et bufcat, ça fonctionne au poil sans latence, xz tourne juste avec un décalage.

    On pourrait directement imaginer aussi des truc du genre

    [terminal] $ care -f tar -o >( bufcat | gzip | ssh host "cat > care-archive.tar.gz" ) some_stuff
    

    Oui, je sais, ma haine des fichiers temporaires est maladive. Mais globalement je trouve ton programme absolument génial à ce détail près (et aussi à mon incompréhension des autoextractibles, mais ça ne doit pas correspondre à mon usage).