claude-code-kr 0.3.9 → 0.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cckr-command.md +6 -0
- package/lib/commands.js +58 -0
- package/lib/locales/ko.json +4 -0
- package/package.json +1 -1
- package/scripts/postinstall.js +16 -0
- package/scripts/preuninstall.js +12 -0
package/lib/commands.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const os = require('os');
|
|
4
|
+
|
|
5
|
+
const COMMANDS_DIR = path.join(os.homedir(), '.claude', 'commands');
|
|
6
|
+
const TARGET_FILE = path.join(COMMANDS_DIR, 'cckr.md');
|
|
7
|
+
const SOURCE_FILE = path.join(__dirname, 'cckr-command.md');
|
|
8
|
+
const MARKER = 'managed-by: claude-code-kr';
|
|
9
|
+
|
|
10
|
+
// /cckr 슬래시 커맨드 설치
|
|
11
|
+
function install() {
|
|
12
|
+
try {
|
|
13
|
+
if (!fs.existsSync(SOURCE_FILE)) {
|
|
14
|
+
return { ok: false, error: 'cckr-command.md 원본 파일 없음' };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// ~/.claude/commands/ 디렉토리 생성
|
|
18
|
+
if (!fs.existsSync(COMMANDS_DIR)) {
|
|
19
|
+
fs.mkdirSync(COMMANDS_DIR, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// 기존 파일이 있고 marker가 없으면 사용자 정의 — 건드리지 않음
|
|
23
|
+
if (fs.existsSync(TARGET_FILE)) {
|
|
24
|
+
const existing = fs.readFileSync(TARGET_FILE, 'utf8');
|
|
25
|
+
if (!existing.includes(MARKER)) {
|
|
26
|
+
return { ok: true, skipped: true, reason: 'user-customized' };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// 복사
|
|
31
|
+
fs.copyFileSync(SOURCE_FILE, TARGET_FILE);
|
|
32
|
+
return { ok: true };
|
|
33
|
+
} catch (e) {
|
|
34
|
+
return { ok: false, error: e.message };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// /cckr 슬래시 커맨드 제거
|
|
39
|
+
function uninstall() {
|
|
40
|
+
try {
|
|
41
|
+
if (!fs.existsSync(TARGET_FILE)) {
|
|
42
|
+
return { ok: true, skipped: true, reason: 'not-found' };
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// marker가 있는 우리 파일만 제거
|
|
46
|
+
const content = fs.readFileSync(TARGET_FILE, 'utf8');
|
|
47
|
+
if (!content.includes(MARKER)) {
|
|
48
|
+
return { ok: true, skipped: true, reason: 'user-customized' };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
fs.unlinkSync(TARGET_FILE);
|
|
52
|
+
return { ok: true };
|
|
53
|
+
} catch (e) {
|
|
54
|
+
return { ok: false, error: e.message };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
module.exports = { install, uninstall, TARGET_FILE };
|
package/lib/locales/ko.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
" · /effort`": " · /노력`",
|
|
3
3
|
"\" commands in\"": "\" 명령어\"",
|
|
4
|
+
"\" during this session\"": "\" (이 세션 동안)\"",
|
|
4
5
|
"\" for verbose output\"": "\" 자세히 보기\"",
|
|
6
|
+
"\" from this project\"": "\" (이 프로젝트)\"",
|
|
5
7
|
"\" says: \"": "\": \"",
|
|
6
8
|
"\" to cycle permission modes. Each mode changes how much Claude asks before acting:\"": "\" 권한 모드 전환. 각 모드는 Claude가 행동 전에 얼마나 묻는지 결정합니다:\"",
|
|
7
9
|
"\" to toggle\"": "\"으로 전환\"",
|
|
@@ -220,6 +222,8 @@
|
|
|
220
222
|
"\"Working Directory Has Changes\"": "\"작업 디렉토리에 변경사항 있음\"",
|
|
221
223
|
"\"Workspace\"": "\"작업 공간\"",
|
|
222
224
|
"\"Yes, allow all edits during this session\"": "\"네, 이 세션에서 모든 수정 허용\"",
|
|
225
|
+
"\"Yes, allow reading from \"": "\"네, 읽기 허용: \"",
|
|
226
|
+
"\"Yes, and always allow access to \"": "\"네, 항상 접근 허용: \"",
|
|
223
227
|
"\"Yes, and don't ask again for \"": "\"네, 다시 묻지 않기: \"",
|
|
224
228
|
"\"Yes, and don't ask again for\"": "\"네, 다시 묻지 않기:\"",
|
|
225
229
|
"\"chat:cycleMode\",\"Chat\",\"shift+tab\")} to cycle between default mode, auto-accept edit mode, and plan mode": "\"chat:cycleMode\",\"Chat\",\"shift+tab\")}로 기본 모드, 수정 허용, 계획 모드를 전환하세요",
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
try {
|
|
4
4
|
const patcher = require('../lib/patcher');
|
|
5
5
|
const hooks = require('../lib/hooks');
|
|
6
|
+
const commands = require('../lib/commands');
|
|
6
7
|
|
|
7
8
|
console.log('🇰🇷 claude-code-kr: Claude Code 한글화 설치 중...\n');
|
|
8
9
|
|
|
@@ -35,7 +36,22 @@ try {
|
|
|
35
36
|
console.log(` ⚠️ hook 등록 스킵: ${e.message}`);
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
// 3. /cckr 슬래시 커맨드 설치
|
|
40
|
+
try {
|
|
41
|
+
const cmdResult = commands.install();
|
|
42
|
+
if (cmdResult.ok && !cmdResult.skipped) {
|
|
43
|
+
console.log(' ✅ /cckr 슬래시 커맨드 설치');
|
|
44
|
+
} else if (cmdResult.skipped) {
|
|
45
|
+
console.log(` ⏭️ /cckr 커맨드 스킵 (${cmdResult.reason})`);
|
|
46
|
+
} else {
|
|
47
|
+
console.log(` ⚠️ /cckr 커맨드 설치 스킵: ${cmdResult.error}`);
|
|
48
|
+
}
|
|
49
|
+
} catch (e) {
|
|
50
|
+
console.log(` ⚠️ /cckr 커맨드 설치 스킵: ${e.message}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
38
53
|
console.log('\n🎉 설치 완료! 새 세션에서 /도움, /근데, /압축 등을 사용하세요');
|
|
54
|
+
console.log(' /cckr 입력으로 cckr 버전 확인 가능');
|
|
39
55
|
} catch (e) {
|
|
40
56
|
// postinstall 실패가 npm install을 막으면 안 됨
|
|
41
57
|
console.log(`⚠️ claude-code-kr 설정 스킵: ${e.message}`);
|
package/scripts/preuninstall.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
try {
|
|
4
4
|
const patcher = require('../lib/patcher');
|
|
5
5
|
const hooks = require('../lib/hooks');
|
|
6
|
+
const commands = require('../lib/commands');
|
|
6
7
|
|
|
7
8
|
console.log('🇰🇷 claude-code-kr: 제거 중...\n');
|
|
8
9
|
|
|
@@ -24,6 +25,17 @@ try {
|
|
|
24
25
|
console.log(` ⚠️ hook 제거 스킵: ${e.message}`);
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
try {
|
|
29
|
+
const cmdResult = commands.uninstall();
|
|
30
|
+
if (cmdResult.ok && !cmdResult.skipped) {
|
|
31
|
+
console.log(' ✅ /cckr 슬래시 커맨드 제거');
|
|
32
|
+
} else if (cmdResult.skipped) {
|
|
33
|
+
console.log(` ⏭️ /cckr 커맨드 스킵 (${cmdResult.reason})`);
|
|
34
|
+
}
|
|
35
|
+
} catch (e) {
|
|
36
|
+
console.log(` ⚠️ /cckr 제거 스킵: ${e.message}`);
|
|
37
|
+
}
|
|
38
|
+
|
|
27
39
|
console.log('\n👋 claude-code-kr 제거 완료');
|
|
28
40
|
} catch (e) {
|
|
29
41
|
console.log(`⚠️ claude-code-kr 정리 스킵: ${e.message}`);
|