В настоящее время структура каталогов не поддерживается, что является небольшим ограничением, но, возможно, что-то вроде команды tree
, смешанной с командой генерации дерева (я написал) под названием eert, могло бы помочь.
Вверх: суть
Чтобы получить файлы в Интернете, вы можете загрузить их по отдельности на основной веб-сайт или, что еще лучше, установите gist
инструмент командной строки.
Для пользователей Mac я бы рекомендовал использовать brew install gist
(и получить brew, установщик пакетов из brew.sh). В противном случае gem install gist
(хотя мой собственный послужной список использования gem install…
довольно шаткий, так что, надеюсь, вам повезет больше).
Затем вы указываете файлы для отправки:
$ gist index.js package.json
https://gist.github.com/a24b93601b8b2a68b8e978460bf6e4e1
Затем этот URL-адрес можно/нужно использовать в этой проблеме.
Вниз: от сути
Теперь самое интересное, извлечение сути и создание всех отдельных файлов одной командой 💪😃
Используя jq (легкий и гибкий процессор JSON для командной строки), хорошо сформированная команда может использовать общедоступный API Github для чтения сути (хотя она не будет работать с секретными списками, если вы также не используете токен аутентификации… выходит за рамки этого поста хотя).
Во-первых, вот полная рабочая команда (при условии, что вы установили jq
и у вас есть curl
на вашей машине — большинство так и делает):
$ eval "$(curl -L https://git.io/vbSgz \
| jq -r '.files
| to_entries
| .[].value
| @sh "echo \(.content) > \(.filename)"')"
$ tree
.
├── index.js
└── package.json
Что происходит на самом деле?
jq
дается скрипт для запуска с результатом JSON вызова gist API. Вы можете поиграть с интерактивной игрушкой jq, которую я построил и увидеть результаты настройки запроса.
Чтобы объяснить запрос:
.files
: считывает свойствоfiles
.to_entries
: преобразует объекты в массив, который предоставляет свойство из каждого уникального имени файла в общее имя свойства..[].value
: возвращает список (не массив) объектов, содержащих имя файла и содержимое для извлечения.@sh "echo \(.content) > \(.filename)"
: генерирует «безопасную для оболочки» строку, которая представляет собой командуecho
, переданную в файл, названный свойством.filename
в нашем объекте. Синтаксис\(.<prop>)
— это синтаксис шаблона для jq.
Этот запрос передается в jq -r
— часть -r
возвращает результат в виде пустой строки (а не в кавычках, поскольку вы увидите результат в ссылках инструмента Jace).
Наконец, весь результат eval
ed через командную строку, что аналогично копированию и вставке каждой строки в командную строку.
Результат: отдельные файлы с содержимым из gists.
Первоначально опубликовано в журнале Remy Sharp’s b:log