-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHELP
More file actions
524 lines (416 loc) · 15.9 KB
/
HELP
File metadata and controls
524 lines (416 loc) · 15.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
================================================================================
GITBUILDER HELP - Version 2.0.2
GitHub Repository Manager and Build Automation Tool
================================================================================
QUICK REFERENCE
===============
Keyboard Shortcuts:
Esc Return to previous screen / Exit from main menu
H Show this help page (from any menu)
L Quick launch a binary (main menu & build details)
G Go to specific help section (enter section number)
0-9 Select menu options
Command Line Usage:
gitbuilder Start interactive mode
gitbuilder -h, --help Show command line help
gitbuilder -v Show version information
gitbuilder -l, --list List all repositories
gitbuilder -b ID Build repository with given ID
gitbuilder -u Update all repository commit dates
gitbuilder --backup FILE Backup database to file
gitbuilder --restore FILE Restore database from file
gitbuilder --check-update Check for GitBuilder updates
Environment Variables:
GITBUILDER_JOBS Number of parallel build jobs (default: auto-detect)
EDITOR Preferred text editor for notes
================================================================================
HELP SECTIONS INDEX
================================================================================
[1] Main Menu Overview
[2] Repository Management
[3] Build Operations
[4] Repository Details
[5] Import/Export (gitbuildfile)
[6] System Settings
[7] File Browser
[8] Build System Support
[9] Build Optimization
[10] Desktop Launchers
[11] Data Storage & Backup
[12] Troubleshooting
================================================================================
[1] MAIN MENU OVERVIEW
================================================================================
The main menu is organized into categories for easy navigation:
Repository Management (1-4):
Add, edit, remove, and search repositories in your database.
Build Operations (5-8):
Download and build repositories, manage build queues, profiles, and history.
Repository Details (9-12):
View/edit build details, launch binaries, manage dependencies and notes.
Import/Export (13-15):
Save and import gitbuildfile configurations for sharing build settings.
System (16-18):
Refresh repository info, access settings, install GitBuilder launcher.
Navigation:
- Type a number and press Enter to select an option
- Press Esc to exit GitBuilder
- Press H for help, L for quick launch, G for specific help section
================================================================================
[2] REPOSITORY MANAGEMENT
================================================================================
ADD A REPOSITORY (Option 1)
---------------------------
Add a new GitHub repository to GitBuilder's database.
Required information:
- Repository name (e.g., "zesarux")
- GitHub URL (e.g., "https://github.com/chernandezba/zesarux.git")
GitBuilder will:
- Detect the build system automatically
- Store the repository in the database
- Optionally clone and build immediately
EDIT A REPOSITORY (Option 2)
----------------------------
Modify repository details including:
- Repository name
- GitHub URL
- Build type override
- Build file path
REMOVE A REPOSITORY (Option 3)
------------------------------
Delete a repository from the database.
Note: This does not delete the cloned source code from disk.
Use the file browser or terminal to remove source files if needed.
SEARCH REPOSITORIES (Option 4)
------------------------------
Find repositories by name or URL.
Useful when you have many repositories in your database.
================================================================================
[3] BUILD OPERATIONS
================================================================================
BUILD AN EXISTING REPOSITORY (Option 5)
---------------------------------------
Clone a repository (if not already cloned) and build it.
The build process:
1. Clone or update the repository
2. Check for gitbuildfile (prompts to use if found)
3. Check and install dependencies
4. Detect build system (CMake, Autotools, Make, etc.)
5. Execute the build with parallel jobs
6. Show live progress: elapsed time, estimated remaining, log activity
7. Find and register the built binary (all binaries saved for later access)
8. Auto-update desktop launcher if exists, or offer to create one
SEE BUILD QUEUE (Option 6)
--------------------------
Queue multiple repositories for sequential building.
Features:
- Add repositories to queue with priority levels
- Process queue automatically
- View queue status
- Remove items from queue
BUILD PROFILES (Option 7)
-------------------------
Save and reuse build configurations across repositories.
Profile settings include:
- Configure flags
- Make flags
- CMake flags
- Strip debug symbols option
- Use RAM disk option
BUILD HISTORY (Option 8)
------------------------
View past builds with:
- Timestamps
- Build duration
- Success/failure status
- Build logs
================================================================================
[4] REPOSITORY DETAILS
================================================================================
SEE/EDIT BUILD DETAILS (Option 9)
---------------------------------
Comprehensive view and edit screen for repository settings.
Editable Options (1-17):
1-5 Edit basic info (name, URL, build type, build file, binary path)
6-10 Edit build flags and settings
11-17 Dependencies, notes, build file path, etc.
Action Options (18-27):
18 Rebuild repository
19 Launch binary
20 Binary backups
21 Launch secondary binary (all binaries from this repo)
22 Create/Remove desktop launcher
23 View build errors
24 View build warnings
25 View missing dependencies
26 View full build log
27 Clear build log files
Hotkeys in this screen:
- H: Show help
- L: Launch this repository's binary
- Esc: Return to main menu
LAUNCH A BINARY (Option 10)
---------------------------
Run a built binary from a repository.
Launch modes:
- Quiet: Run in background (no terminal output)
- Verbose: Run in foreground (shows output)
If no binary is registered, you can browse for one.
DEPENDENCIES (Option 11)
------------------------
Manage software dependencies required to build repositories.
Features:
- View dependencies for a repository
- Add new dependencies
- Remove dependencies
- Check if dependencies are installed
- Install missing dependencies (requires sudo)
REPOSITORY NOTES (Option 12)
----------------------------
Add notes to repositories for future reference.
Notes are displayed after successful builds and can contain:
- Build instructions
- Configuration tips
- Known issues
- Links to documentation
================================================================================
[5] IMPORT/EXPORT (GITBUILDFILE)
================================================================================
SAVE GITBUILDFILE (Option 13)
-----------------------------
Export a repository's build configuration to a gitbuildfile.
The gitbuildfile is saved to:
- The repository's root directory
- A backup copy in the gitbuildfiles/ directory
SAVE ALL GITBUILDFILES (Option 14)
----------------------------------
Export gitbuildfiles for all repositories at once.
Files are saved to the gitbuildfiles/ directory.
IMPORT GITBUILDFILE (Option 15)
-------------------------------
Import a build configuration from a gitbuildfile.
Use this to:
- Share build configurations between machines
- Restore configurations after reinstalling
- Import configurations from other users
GITBUILDFILE FORMAT
-------------------
The gitbuildfile contains:
REPO_NAME="example-repo"
REPO_URL="https://github.com/user/example-repo.git"
BUILD_METHOD="cmake"
DEPENDENCIES="libsdl2-dev libssl-dev"
BUILD_FILE="src/CMakeLists.txt"
CONFIGURE_FLAGS="--enable-feature"
MAKE_FLAGS="-j4"
CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=Release"
BINARY_PATH="~/.local/share/gitbuilder/src/repo/build/bin/app"
LAUNCHER_ICON="~/.local/share/gitbuilder/src/repo/icon.png"
LAUNCHER_CATEGORY="Development"
NOTES="Build notes here"
All fields are optional. Use ~/ for home directory paths.
Gitbuildfile names can be given a suffix to speciate them for specific build purposes.
For example, gitbuildfile.generic, gitbuildfile.ubuntu, gitbuildfile.arch, etc.
================================================================================
[6] SYSTEM SETTINGS
================================================================================
REFRESH GIT REPOSITORY INFO (Option 16)
---------------------------------------
Update commit dates and status for all repositories.
Checks GitHub for the latest commit information.
SETTINGS (Option 17)
--------------------
Configure GitBuilder preferences:
1. Theme Selection
Choose from: default, ocean, forest, mono
2. Desktop Notifications
Enable/disable build completion notifications
(Requires notify-send)
3. Auto-backup Settings
Configure automatic database backups
4. Backup Database
Create a manual backup of the database
5. Restore Database
Restore from a previous backup
6. Check for Updates
Check if a new version of GitBuilder is available
INSTALL GITBUILDER LAUNCHER (Option 18)
---------------------------------------
Create a desktop launcher for GitBuilder itself.
This option only appears if the launcher doesn't exist.
The launcher will appear in your application menu under "Development".
================================================================================
[7] FILE BROWSER
================================================================================
The interactive file browser is used for selecting:
- Binary files
- Icon files
- Build files
- Directories
Navigation:
- Numbers: Select items or navigate to directories
- 0: Go to parent directory
- Esc or q: Cancel and return
Display:
- Current directory path shown at top
- Directories listed first with [DIR] prefix
- Files listed with appropriate labels
- Executable files marked for binary selection
================================================================================
[8] BUILD SYSTEM SUPPORT
================================================================================
GitBuilder automatically detects and supports these build systems:
CMake:
- Detects CMakeLists.txt
- Creates build directory
- Runs cmake and make
Autotools:
- Detects configure, configure.ac, autogen.sh
- Runs autogen.sh if needed
- Runs configure and make
Make:
- Detects Makefile
- Runs make directly
Meson:
- Detects meson.build
- Creates build directory
- Runs meson setup and ninja
Gradle:
- Detects build.gradle
- Runs ./gradlew or gradle
Maven:
- Detects pom.xml
- Runs mvn package
Cargo (Rust):
- Detects Cargo.toml
- Runs cargo build --release
Go:
- Detects go.mod
- Runs go build
Node.js:
- Detects package.json
- Runs npm install and npm run build
Custom:
- Use gitbuildfile for custom build commands
================================================================================
[9] BUILD OPTIMIZATION
================================================================================
PARALLEL BUILDS
---------------
GitBuilder automatically detects CPU cores and uses parallel compilation:
- Make: -j<cores>
- Ninja: -j<cores>
- Gradle: --parallel --max-workers=<cores>
- Maven: -T <cores>
Override with: GITBUILDER_JOBS=N gitbuilder
CCACHE INTEGRATION
------------------
If ccache is installed, GitBuilder uses it automatically for faster rebuilds.
Install ccache: sudo apt install ccache
RAM DISK SUPPORT
----------------
For faster builds on large projects, enable RAM disk:
- Dynamically allocates up to 75% of available RAM
- No hard cap - large projects like MAME can use what they need
- tmpfs only uses memory as files are written (not pre-allocated)
- Minimum 2GB free RAM required
- Source copied to RAM disk before building
- Results copied back after build
- Automatically unmounted on completion
Enable per-repository in build details (option 17).
DEBUG SYMBOL STRIPPING
----------------------
Enable to create smaller, faster binaries:
- Sets CFLAGS="-O2 -DNDEBUG"
- Uses CMAKE_BUILD_TYPE=Release
- Uses --buildtype=release for Meson
Enable per-repository in build details (option 16).
================================================================================
[10] DESKTOP LAUNCHERS
================================================================================
Create .desktop files for built applications.
Creating a Launcher:
1. Build the repository
2. Register the binary
3. Select "Create desktop launcher" from build details
4. Choose launcher name
5. Select category (Development, Game, Graphics, etc.)
6. Select icon (browse or use system icon)
Launcher Location:
~/.local/share/applications/
The launcher will appear in your application menu after creation.
You may need to log out and back in for it to appear.
Managing Launchers:
- Create/Remove: Build details option 22
- Auto-updated when binary path changes on rebuild
Secondary Binaries:
- All binaries discovered during build are saved
- Access via Build details option 21
- Rescan for binaries if needed
- Launch any binary from the repository
================================================================================
[11] DATA STORAGE & BACKUP
================================================================================
DATA LOCATIONS
--------------
GitBuilder stores data in ~/.local/share/gitbuilder/:
repos.db Main SQLite database
config User preferences (theme, notifications)
src/ Cloned repository source code
backups/ Database backups
history/ Build history records
profiles/ Saved build profiles
binary_backups/ Backed up binaries
Script-relative directories:
gitbuildfiles/ Saved gitbuildfile configurations
plugins/ Custom plugins (future use)
BACKUP & RESTORE
----------------
Backup your database regularly:
- Settings menu > Backup Database
- Command line: gitbuilder --backup ~/backup.sql
Restore from backup:
- Settings menu > Restore Database
- Command line: gitbuilder --restore ~/backup.sql
Auto-backup:
- Enabled by default for destructive operations
- Keeps recent backups automatically
================================================================================
[12] TROUBLESHOOTING
================================================================================
BUILD FAILURES
--------------
1. Check the build log (build details option 11)
2. Verify dependencies are installed (option 9)
3. Try cleaning the build directory (option 12)
4. Check for gitbuildfile with custom settings
MISSING BINARY
--------------
1. Use the file browser to locate the binary
2. Check the build log for the output location
3. Some projects install to different locations
DEPENDENCY ISSUES
-----------------
1. Use the dependencies menu to add required packages
2. Run dependency check before building
3. Some packages may have different names on different distros
DATABASE ISSUES
---------------
1. Restore from a backup
2. Check file permissions on ~/.local/share/gitbuilder/
3. Ensure SQLite3 is installed
LAUNCHER NOT APPEARING
----------------------
1. Log out and back in
2. Check ~/.local/share/applications/ for the .desktop file
3. Verify the file has execute permission
HOTKEYS NOT WORKING
-------------------
1. Ensure you're at a menu prompt
2. Try pressing the key without other input
3. Some terminals may intercept certain keys
================================================================================
END OF HELP FILE
================================================================================
For more information, visit: https://github.com/vr51/GitBuilder
================================================================================