TGViewer
Work & Beer Balance Work & Beer Balance @workbeer · 1.55K subscribers
Post #140 1.16K
Есть одна мелочь, о которой если не подумать при написании скрипта, то можно сломать пол системы неопытному пользователю.

Если вы писали на node.js консольные утилиты, то там с 99% вероятностью был параметр принимающий путь к файлу (по крайней мере у меня было так).
И рано или поздно туда прилетит что-то вроде --path ~/logs/debug.txt - и ничего страшного не произойдет. А потом это перенесут в конфиг - и вот тут начнется дичь.

В худшем случае (если вы создаете директорию если она не найдена) будет создана папка с названием ~ прямо в корне, что не только взорвет дно вашего пользователя пока он будет пытаться найти этот файл, но и может плохо сказаться на системе в целом, ведь теперь в системе путь ~/... может вести в совершенно разные места.

Что же поменялось?

Дело в том что `~` это алиас который понимает ваш шэл (bash например). Когда вы задаете параметр ~/logs/debug.txt оно преобразуется в /home/username/logs/debug.txt перед тем как будет передано программе.
А когда вы читаете файл, или stdout - этого не происходит, и в приложение путь попадает как есть. Но далеко не все пользователи это осознают.
По этой причине, было бы здорово в вашей апке учесть этот момент, и при чтении пути интерпретировать символ ~ в начале пути.
В npm полно либ которые это делают, но это легко сделать без них

import os from "node:os"

const resolveHomeDir = (path) => (path === '~' || path.startsWith('~/')) ? path.replace('~', os.homedir()) : path



(P.S. вот поэтому нельзя запускать скрипты рукожопам вроде меня с правами админа!)
  • 👍 7
  • 🔥 2
More from @workbeer
  1. Oct 12, 2026Я слышал раньше истории том что топ сениор тимлид разработчик после выгорания ушел из айти…
  2. Oct 11, 2026Недавно я писал про стартап Emergence AI, который запер нейроночки в виртуальном городке "…
  3. Oct 1, 2026Ищу нового хозяина для своего Starlabs Starlight 12.5" Linux планшета (хочу поменять его н…
  4. Sep 29, 2026👨‍💻 Фронтенд с AI: что можно делегировать агентам 5 октября, стартует конференция Podlod…
  5. Sep 29, 2026Ну и если вы пользуетесь продутами Proton - VPN или почтой, то вам будет интересно узнать…
  6. Sep 29, 2026Насколько она умная? В реальном RAG-сервисе ZüriCityGPT на реальном пользовательском трафи…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →