the-real-gib-run 1.0.0
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/README.md +67 -0
- package/index.js +109 -0
- package/package.json +11 -0
package/README.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# GIB RUN (The Real Task Runner)
|
|
2
|
+
|
|
3
|
+
> "Kembalikan fungsi 'Run' kepada yang berhak mengeksekusi, bukan yang menyimpan data."
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[]()
|
|
8
|
+
|
|
9
|
+
**Gib Run** adalah CLI Wrapper untuk ekosistem JavaScript (Node.js, Bun, PNPM, Yarn) yang dirancang untuk menggantikan `npm`.
|
|
10
|
+
|
|
11
|
+
Project ini dibuat sebagai respons atas "kebingungan" di komunitas yang menamai framework Redis/Go dengan akhiran `.run`. Di sini, kami meluruskan bahwa **Run** adalah kata kerja untuk menjalankan task, bukan menyimpan cache.
|
|
12
|
+
|
|
13
|
+
## Kenapa Pakai Gib Run?
|
|
14
|
+
|
|
15
|
+
| Fitur | Gib Run (Ini) | Gib.Run (Sebelah) |
|
|
16
|
+
| :--- | :--- | :--- |
|
|
17
|
+
| **Fungsi Utama** | Menjalankan Script (Task Runner) | Database/Cache (Redis) |
|
|
18
|
+
| **Logika Bahasa** | Valid (`gib run dev`) | Tidak Valid (Redis kok Run?) |
|
|
19
|
+
| **Dukungan** | NPM, Bun, PNPM, Yarn | Golang only |
|
|
20
|
+
| **Fitur Spesial** | Protokol Fufufafa (Pembersih) | Tidak ada |
|
|
21
|
+
|
|
22
|
+
## Instalasi
|
|
23
|
+
|
|
24
|
+
Karena ini gerakan bawah tanah, silakan install langsung dari source atau tunggu rilis di NPM.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Clone repository
|
|
28
|
+
git clone [https://github.com/username-anda/gib-run.git](https://github.com/username-anda/gib-run.git)
|
|
29
|
+
|
|
30
|
+
# Masuk folder
|
|
31
|
+
cd gib-run
|
|
32
|
+
|
|
33
|
+
# Install secara global (Link)
|
|
34
|
+
npm link
|
|
35
|
+
Cara Pakai (Usage)
|
|
36
|
+
Cukup ganti npm dengan gib dalam keseharian Anda.
|
|
37
|
+
|
|
38
|
+
1. Mode Development
|
|
39
|
+
Menjalankan server dev dengan asupan gizi yang cukup.
|
|
40
|
+
|
|
41
|
+
Bash
|
|
42
|
+
|
|
43
|
+
gib run dev
|
|
44
|
+
2. Mode Production
|
|
45
|
+
Menjalankan build production untuk menuju Indonesia Emas.
|
|
46
|
+
|
|
47
|
+
Bash
|
|
48
|
+
|
|
49
|
+
gib run start
|
|
50
|
+
3. Install Paket
|
|
51
|
+
Membagikan dependencies (bansos) ke dalam folder node_modules.
|
|
52
|
+
|
|
53
|
+
Bash
|
|
54
|
+
|
|
55
|
+
gib install axios
|
|
56
|
+
# atau
|
|
57
|
+
gib i react
|
|
58
|
+
4. [BAHAYA] Protokol Fufufafa
|
|
59
|
+
Fitur khusus untuk menghapus jejak digital project secara massal. PERINGATAN: Gunakan dengan bijak. Penulis tidak bertanggung jawab atas hilangnya skripsi atau codingan kantor.
|
|
60
|
+
|
|
61
|
+
Bash
|
|
62
|
+
|
|
63
|
+
gib fufufafa
|
|
64
|
+
Disclaimer
|
|
65
|
+
Project ini adalah satire dan bentuk kritik konstruktif terhadap penamaan framework. Tidak ada maksud menjatuhkan, hanya meluruskan syntax.
|
|
66
|
+
|
|
67
|
+
#IMPHNEN #Javascript #GibRun #TheRealOne
|
package/index.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { execSync } = require('child_process');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const readline = require('readline');
|
|
7
|
+
|
|
8
|
+
// --- DETEKSI KOALISI (Package Manager) ---
|
|
9
|
+
const getPackageManager = () => {
|
|
10
|
+
const cwd = process.cwd();
|
|
11
|
+
if (fs.existsSync(path.join(cwd, 'bun.lockb'))) return 'bun';
|
|
12
|
+
if (fs.existsSync(path.join(cwd, 'pnpm-lock.yaml'))) return 'pnpm';
|
|
13
|
+
if (fs.existsSync(path.join(cwd, 'yarn.lock'))) return 'yarn';
|
|
14
|
+
return 'npm';
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const pm = getPackageManager();
|
|
18
|
+
const args = process.argv.slice(2);
|
|
19
|
+
const fullCommand = args.join(' ');
|
|
20
|
+
|
|
21
|
+
// Helper jalanin command
|
|
22
|
+
const runCommand = (cmdArgs) => {
|
|
23
|
+
try {
|
|
24
|
+
const finalCmd = `${pm} ${cmdArgs}`;
|
|
25
|
+
console.log(`[SYSTEM] Menggunakan mesin penggerak: ${pm.toUpperCase()}`);
|
|
26
|
+
execSync(finalCmd, { stdio: 'inherit' });
|
|
27
|
+
} catch (error) {
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
console.log("\n[GIB RUN - OFFICIAL CLI]");
|
|
33
|
+
console.log("Mengembalikan fungsi 'Run' ke jalan yang benar.\n");
|
|
34
|
+
|
|
35
|
+
// --- LOGIKA UTAMA ---
|
|
36
|
+
|
|
37
|
+
// Command: gib run dev / gib run start
|
|
38
|
+
if (args[0] === 'run') {
|
|
39
|
+
if (!args[1]) {
|
|
40
|
+
console.log("[WARN] Mau run apa? Harap spesifik.");
|
|
41
|
+
} else {
|
|
42
|
+
console.log(`[INFO] Memerintahkan bawahan untuk lari... (${args[1]})`);
|
|
43
|
+
if (args[1] === 'dev') console.log("[INFO] Menyiapkan asupan gizi codingan...");
|
|
44
|
+
runCommand(`run ${args[1]}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Command: gib install / gib i
|
|
49
|
+
else if (args[0] === 'install' || args[0] === 'i') {
|
|
50
|
+
console.log("[INFO] Membagikan dependencies ke dalam node_modules...");
|
|
51
|
+
const installArgs = args.length > 1 ? args.slice(1).join(' ') : 'install';
|
|
52
|
+
|
|
53
|
+
// Penyesuaian syntax bun
|
|
54
|
+
if (pm === 'bun' && args.length > 1) {
|
|
55
|
+
execSync(`bun add ${args.slice(1).join(' ')}`, { stdio: 'inherit' });
|
|
56
|
+
} else {
|
|
57
|
+
runCommand(installArgs);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Command: gib fufufafa (FITUR PRANK)
|
|
62
|
+
else if (args[0] === 'fufufafa') {
|
|
63
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
64
|
+
|
|
65
|
+
console.log("\n[ALERT] AKSES KOMANDO RAHASIA: PROTOKOL PEMBERSIHAN JEJAK.");
|
|
66
|
+
console.log("[WARN] Semua file di folder ini akan DIHAPUS.");
|
|
67
|
+
console.log("(Fitur ini untuk menghilangkan bukti, bukan nyimpen data di Redis).");
|
|
68
|
+
|
|
69
|
+
rl.question("\nKetik 'FUFUFAFA' untuk eksekusi: ", (answer) => {
|
|
70
|
+
if (answer === 'FUFUFAFA') {
|
|
71
|
+
console.log("\n[ACTION] MEMULAI OPERASI BUMI HANGUS...");
|
|
72
|
+
const files = fs.readdirSync(process.cwd());
|
|
73
|
+
|
|
74
|
+
let delay = 500;
|
|
75
|
+
files.forEach(file => {
|
|
76
|
+
if(file !== 'index.js' && file !== 'node_modules') {
|
|
77
|
+
setTimeout(() => {
|
|
78
|
+
console.log(`[DELETED] Menghapus jejak: ${file} ... SUKSES`);
|
|
79
|
+
// HAPUS TANDA KOMENTAR DI BAWAH JIKA INGIN HAPUS BENERAN
|
|
80
|
+
// fs.rmSync(path.join(process.cwd(), file), { recursive: true, force: true });
|
|
81
|
+
}, delay);
|
|
82
|
+
delay += 300;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
setTimeout(() => {
|
|
87
|
+
console.log("\n[STATUS] Operasi Selesai. Anda Aman.");
|
|
88
|
+
process.exit(0);
|
|
89
|
+
}, delay + 1000);
|
|
90
|
+
} else {
|
|
91
|
+
console.log("[ERROR] Kode salah. Operasi dibatalkan.");
|
|
92
|
+
process.exit(0);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Command Tidak Dikenal (Sindir Sebelah)
|
|
98
|
+
else {
|
|
99
|
+
if (fullCommand.length > 0) {
|
|
100
|
+
runCommand(fullCommand);
|
|
101
|
+
} else {
|
|
102
|
+
console.log("[?] Bingung Mas?");
|
|
103
|
+
console.log("Gunakan: 'gib run dev' atau 'gib install'.");
|
|
104
|
+
console.log("\n[DISCLAIMER]");
|
|
105
|
+
console.log("Ini GIB RUN (Task Runner).");
|
|
106
|
+
console.log("Kalau nyari GIB RUN yang isinya REDIS/DATABASE, itu di sebelah.");
|
|
107
|
+
console.log("Di sini kita KERJA (Run), bukan NONGKRONG (Store).");
|
|
108
|
+
}
|
|
109
|
+
}
|
package/package.json
ADDED