Как стать автором
Обновить

Комментарии 13

Выглядит очень интересно. Deno очень удобный инструмент для написания системных скриптов. Ждём, когда фишки setRaw перестанут быть unstable.

Кстати про unstable, есть еще одна неприятная особенность. Если импортировать функции из deno.land/std/fs/mod.ts как это сделал я, то тоже придется использовать --unstable, так как в mod.ts есть функция ensureSymlink которая использует нестабильный Deno.symlink. Лучше сразу импортировать из нужного файла deno.land/std/fs/read_json.ts.
прикольно…

сразу понятно было, что явный пиар любимой платформы…

но вот так вот — смешать в кучу сразу три модных слова — v8, rust, typescript — и это всё вместе работает? спасибо, очень интересно!

сразу вопрос — «линковаться» к сишным библиотекам можно?
На сколько я понял, сейчас для того что бы «прилинковаться» к сишным библиотекам нужно написать биндинги на расте и подключить как плагин через Deno.openPlugin.
Что-то похожее в webview_deno.
спасибо:)
выглядит как ядерная вещь
nodeнет спасибо!
а также возможность импортировать и запускать скрипты по URL, выгодно отличают Deno от Node и Bash.


Простите, но
curl http://remoteserver.com/myshellscript.sh | bash
Это, конечно, верно, но мой поинт был скорее в том что имея все перечисленные возможности код писать удобнее.
А запуск скрипта из интернета с явным указанием что ему можно делать прям киллер-фича. Могу ошибаться, но для того что бы в bash ограничить, например, доступ к интернету нужно запускать скрипт от пользователя с этими ограничениями. Как тут serverfault.com/questions/550276/how-to-block-internet-access-to-certain-programs-on-linux.
код писать удобнее.

Но ведь это зависит от того, какой язык тебе привычнее. Мне вот bash более чем привычен.

А запуск скрипта из интернета с явным указанием что ему можно делать прям киллер-фича.

Запуск чужих скриптов из инета как бы не есть гуд в любом случае. И доступ к инету ограничивать не самое главное, тут сперва доступ к rm -rf / ограничить.

Могу ошибаться, но для того что бы в bash ограничить, например, доступ к интернету нужно запускать скрипт от пользователя с этими ограничениями.

можно просто прописать несуществующий прокси в виде http_proxy, https_proxy, да и баш сам по себе в инет не лезет, туда лезут различные утилиты, каждой можно индивидуально доступ дать.

Я просто думаю, что вашу утилиту некорректно сравнивать с bash. Ее корректно сравнивать с похожими инструментами — какиминить google tasks, todoist for chrome, веб-интерфейсом к кронтабу и тому подобным.
Я просто думаю, что вашу утилиту некорректно сравнивать с bash. Ее корректно сравнивать с похожими инструментами — какиминить google tasks, todoist for chrome, веб-интерфейсом к кронтабу и тому подобным.

Не, со специализированными программами в целом еще один todo лист сравнивать не нужно. В самом todo смысла мало, а как «hello world» на новой технологии вполне.

А разве в линуксе нет проблемы в том, что в шебанге нельзя передавать несколько аргументов?


Т.е. если файл test.ts


#!/usr/bin/env deno run

console.log('GGGGG')

с пермишенном на исполнение попытаться запустить, то получится следующая картина:


./test.ts 
/usr/bin/env: 'deno run': No such file or directory
/usr/bin/env: use -[v]S to pass options in shebang lines

Это в принципе на корню уничтожает смысл половины статьи.

Верное замечание, зависит от env. Где-то решается добавлением -S, где-то как, например, в windows не работает вовсе, а на MacOs работает как есть.

Можно попробовать запускать с помощью exec:

#!/bin/sh
':' //; exec "$(command -v deno)" "run" "--allow-env" "$0" "$@"

console.log('GGGGG', Deno.args)


Конкретно в статье использование шебанга это способ поскорее взглянуть на конечный результат. Можно было без этого обойтись. В итоге все приходит к deno install, а после установки, не зависимо от платформы, все работает как надо.
так вся суть env заключается в том, что ты не знаешь что есть на компе — sh, bash, ksh или deno

И именно поэтому env универсальный и для линукс и для виндовс — он разрулит что запускать на конкретной платформе.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий