Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Pathloader - Windows ์‚ฌ์šฉ์ž PATH(HKCU) ๊ด€๋ฆฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ

๊ฐ„๋‹จํ•œ ์„ค๋ช… Pathloader๋Š” Windows์—์„œ ์‚ฌ์šฉ์ž ์ˆ˜์ค€(HKCU)์˜ PATH ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๋„๋ก ๋•๋Š” ์ž‘์€ ์Šคํฌ๋ฆฝํŠธ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. scripts/list.txt์— ๋„๊ตฌ์˜ bin ๊ฒฝ๋กœ๋ฅผ ์ ๊ณ , ์ฒดํฌ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ˆ„๋ฝ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ ๋’ค ๋ฐฐ์น˜ ํŒŒ์ผ๋กœ ๋ˆ„๋ฝ๋œ ํ•ญ๋ชฉ์„ ์‚ฌ์šฉ์ž PATH์— ์ถ”๊ฐ€ํ•˜๋Š” ํ๋ฆ„์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํŒŒ์ผ

  • scripts/check_user_path.ps1 - list.txt์— ๋ช…์‹œ๋œ ๊ฒฝ๋กœ๋“ค์ด ์‚ฌ์šฉ์ž PATH์— ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • scripts/set_user_path.bat - list.txt ๋˜๋Š” ๋ช…๋ นํ–‰ ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ์„ธ๋ฏธ์ฝœ๋ก (;) ๊ตฌ๋ถ„ ๊ฒฝ๋กœ๋“ค์„ ์‚ฌ์šฉ์ž PATH์— ์„ ํ–‰(prepend)์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • scripts/list.txt - ์˜ˆ์‹œ ๊ฒฝ๋กœ ๋ชฉ๋ก(ํ•œ ์ค„์— ํ•˜๋‚˜, #์œผ๋กœ ์ฃผ์„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ).
  • .github/workflows/ci.yml - (์˜ต์…˜) Windows runner์—์„œ ์ฒดํฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ์˜ˆ์‹œ ์›Œํฌํ”Œ๋กœ.
  • LICENSE, .gitignore - ๋ผ์ด์„ ์Šค์™€ git ๋ฌด์‹œ ๊ทœ์น™.

๋น ๋ฅธ ์‹œ์ž‘ (Quick start)

  1. ์ €์žฅ์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ

    • ์ด ํด๋”๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜๋กœ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํด๋ก ํ•˜์„ธ์š”. ์˜ˆ: D:\Pathloader
  2. ๊ฒฝ๋กœ ๋ชฉ๋ก ํŽธ์ง‘

    • scripts/list.txt์— ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๋„๊ตฌ์˜ bin ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ ์Šต๋‹ˆ๋‹ค. ์˜ˆ: C:\msys64\mingw64\bin ๋˜๋Š” C:\ProgramData\chocolatey\bin
  3. ๊ฒ€์‚ฌ (PowerShell)

    • PowerShell์—์„œ(์ €์žฅ์†Œ ๋ฃจํŠธ):
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\scripts\check_user_path.ps1
  • ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜๋ฉด ์ข…๋ฃŒ์ฝ”๋“œ 0, ์ผ๋ถ€ ๋ˆ„๋ฝ์ด๋ฉด 1, list.txt๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋น„์–ด์žˆ์œผ๋ฉด 2๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  1. ๋ˆ„๋ฝ ํ•ญ๋ชฉ ์ถ”๊ฐ€
    • set_user_path.bat๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค:

      • scripts/list.txt๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ทธ ๋‚ด์šฉ์„ ์‚ฌ์šฉ
      • ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์น˜ ํŒŒ์ผ์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž์—์„œ ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๊ตฌ๋ถ„๋œ ๊ฒฝ๋กœ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉ
    • ์˜ˆ (๋ช…๋ น ํ”„๋กฌํ”„ํŠธ):

cd D:\Pathloader\scripts
set_user_path.bat "C:\custom\bin;C:\another\bin"
  • ์˜ˆ (PowerShell):
cd D:\Pathloader\scripts
.\n+# ๋˜๋Š” Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass & .\set_user_path.bat "C:\custom\bin;C:\another\bin"
  1. ๋ณ€๊ฒฝ ํ™•์ธ
    • ์ƒˆ PowerShell ์ฐฝ์„ ์—ด๊ณ  $env:Path ๋˜๋Š” Get-ChildItem env:Path๋กœ ๋ฐ˜์˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์•ˆ์ „ ๋ฐ ์ฃผ์˜์‚ฌํ•ญ

  • ๊ถŒํ•œ: ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ์‚ฌ์šฉ์ž ์ˆ˜์ค€(HKCU)์„ ์ˆ˜์ •ํ•˜๋ฏ€๋กœ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์ •์ฑ…: set_user_path.bat๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ž„์‹œ PowerShell ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  -ExecutionPolicy Bypass๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง์˜ ๋ณด์•ˆ์ •์ฑ…์— ๋”ฐ๋ผ ์ œํ•œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž„์‹œ ํŒŒ์ผ ์ถฉ๋Œ ์˜ˆ๋ฐฉ: ๋ฐฐ์น˜ ํŒŒ์ผ์€ %TEMP%์— ์ž„์‹œ PS ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ด๋ฆ„์˜ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด(์˜ˆ: ํ”„๋กœ์„ธ์Šค ID ๋˜๋Š” ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ํฌํ•จํ•œ ์ด๋ฆ„ ์‚ฌ์šฉ)์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. (ํ˜„์žฌ ๋ฐฐ์น˜ํŒŒ์ผ์—์„œ๋Š” _set_user_path_tmp.ps1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.)
  • ๋ฐฑ์—… ๊ถŒ์žฅ: ๋Œ€๊ทœ๋ชจ ๋ณ€๊ฒฝ ์ „์— ํ˜„์žฌ ์‚ฌ์šฉ์ž PATH๋ฅผ ๋ฐฑ์—…ํ•˜์„ธ์š”. PowerShell์—์„œ ์˜ˆ: [Environment]::GetEnvironmentVariable('Path','User') | Out-File user_path_backup.txt.
  • ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ œํ•œ: ์Šคํฌ๋ฆฝํŠธ๋Š” WM_SETTINGCHANGE๋ฅผ ์ „์†กํ•˜์—ฌ Explorer ๋“ฑ์—๊ฒŒ ์•Œ๋ฆฌ์ง€๋งŒ, ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์€ ๋ณ€๊ฒฝ์„ ์ธ์‹ํ•˜๋ ค๋ฉด ์žฌ์‹œ์ž‘์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒ ๋ฐ ํ™•์žฅ ์ œ์•ˆ

  • ์กด์žฌํ•˜๋Š” ๊ฒฝ๋กœ๋งŒ ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•˜๋Š” ์˜ต์…˜(์˜ˆ: --exist-only) ๋˜๋Š” ์‚ฝ์ž… ๋ฐฉ์‹(append vs prepend) ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์•ˆ์ „์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์ด ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.
  • ๊ฒฝ๋กœ ์ •๊ทœํ™” ๊ฐœ์„ (์‹ฌ๋ณผ๋ฆญ ๋งํฌ, NT ๊ฒฝ๋กœ, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ™•์žฅ ๋“ฑ)์„ check_user_path.ps1์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋” ๊ฐ•๊ฑดํ•œ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

CI

  • .github/workflows/ci.yml๋Š” ์˜ˆ์‹œ๋กœ Windows runner์—์„œ check_user_path.ps1์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. CI ํ™˜๊ฒฝ์˜ PATH๋Š” ๋กœ์ปฌ๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์‹ค์ œ PATH ๋ณ€๊ฒฝ(์˜ˆ: set_user_path.bat)์€ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

  • ์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค(ํŒŒ์ผ LICENSE ์ฐธ๊ณ ).

ํ”ผ๋“œ๋ฐฑ / ๊ธฐ์—ฌ

  • ์‚ฌ์šฉ ์ค‘ ๊ฐœ์„ ์ ์ด๋‚˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(์˜ˆ: ์ž„์‹œ ํŒŒ์ผ๋ช… ์ถฉ๋Œ ์ œ๊ฑฐ, --exist-only ์˜ต์…˜, ๋” ์ •๊ตํ•œ ์ •๊ทœํ™”)์ด ํ•„์š”ํ•˜๋ฉด ์ด์Šˆ๋‚˜ PR์„ ์—ด์–ด์ฃผ์„ธ์š”.

English summary (short) Pathloader provides simple scripts to manage the user PATH on Windows. Edit scripts/list.txt, run the checker, and use the batch script to add missing tool paths. See the README for additional notes about usage, safety and suggestions for enhancements.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages