Compare commits

..

2 Commits

Author SHA1 Message Date
84e2ee5639 Version v0.2.104 - Cleaned up build.sh 2025-08-31 10:43:36 -04:00
0f3af174b0 Clean up 2025-08-31 09:46:56 -04:00
4 changed files with 13 additions and 131 deletions

5
.gitignore vendored
View File

@@ -3,7 +3,4 @@ pads/
Gemini.md Gemini.md
TropicOfCancer-HenryMiller.txt TropicOfCancer-HenryMiller.txt
# Auto-generated version files # Auto-generated files (none currently)
src/version.h
src/version.c
VERSION

View File

@@ -151,10 +151,7 @@ git tag v1.0.0 # Next build: v1.0.1
- Full version display with metadata - Full version display with metadata
### Generated Files ### Generated Files
The build system automatically generates: The build system automatically manages Git versioning by incrementing tags.
- `src/version.h` - Version constants and macros
- `src/version.c` - Version API functions
- `VERSION` - Plain text version number
These files are excluded from git (.gitignore) and regenerated on each build. These files are excluded from git (.gitignore) and regenerated on each build.
@@ -176,9 +173,6 @@ otp/
├── otp.c # Main source code ├── otp.c # Main source code
├── README.md # This file ├── README.md # This file
├── .gitignore # Git ignore rules ├── .gitignore # Git ignore rules
├── src/ # Generated version files (auto-created)
│ ├── version.h # Version header (generated)
│ └── version.c # Version implementation (generated)
├── pads/ # OTP pad storage directory (created at runtime) ├── pads/ # OTP pad storage directory (created at runtime)
└── VERSION # Plain text version (generated) └── VERSION # Plain text version (generated)
``` ```

View File

@@ -100,13 +100,13 @@ increment_version() {
print_success "Created new version tag: $NEW_VERSION" print_success "Created new version tag: $NEW_VERSION"
# Push changes and tags to remote repository # Push changes and tags to remote repository
if git push ssh://ubuntu@laantungir.net:/home/ubuntu/git_repos/otp 2>/dev/null; then if git push 2>/dev/null; then
print_success "Pushed changes to remote repository" print_success "Pushed changes to remote repository"
else else
print_warning "Failed to push changes to remote repository" print_warning "Failed to push changes to remote repository"
fi fi
if git push ssh://ubuntu@laantungir.net:/home/ubuntu/git_repos/otp --tags 2>/dev/null; then if git push --tags 2>/dev/null; then
print_success "Pushed tags to remote repository" print_success "Pushed tags to remote repository"
else else
print_warning "Failed to push tags to remote repository" print_warning "Failed to push tags to remote repository"
@@ -123,71 +123,7 @@ increment_version() {
fi fi
fi fi
# Update VERSION file for compatibility print_success "Version updated to ${NEW_VERSION}"
echo "${NEW_VERSION#v}" > VERSION
print_success "Updated VERSION file to ${NEW_VERSION#v}"
# Generate version.h header file
mkdir -p src
cat > src/version.h << EOF
/*
* Auto-Generated Version Header
* DO NOT EDIT THIS FILE MANUALLY - Generated by build script
*/
#ifndef VERSION_H
#define VERSION_H
#define VERSION_MAJOR ${MAJOR}
#define VERSION_MINOR ${MINOR}
#define VERSION_PATCH ${NEW_PATCH}
#define VERSION_STRING "${MAJOR}.${MINOR}.${NEW_PATCH}"
#define VERSION_TAG "${NEW_VERSION}"
/* Build information */
#define BUILD_DATE "$(date +%Y-%m-%d)"
#define BUILD_TIME "$(date +%H:%M:%S)"
#define BUILD_TIMESTAMP "$(date '+%Y-%m-%d %H:%M:%S')"
/* Git information */
#define GIT_HASH "$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown')"
#define GIT_BRANCH "$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo 'unknown')"
/* Display versions */
#define VERSION_DISPLAY "${NEW_VERSION}"
#define VERSION_FULL_DISPLAY "${NEW_VERSION} ($(date '+%Y-%m-%d %H:%M:%S'), $(git rev-parse --short HEAD 2>/dev/null || echo 'unknown'))"
/* Version API functions */
const char* get_version(void);
const char* get_version_full(void);
const char* get_build_info(void);
#endif /* VERSION_H */
EOF
# Generate version.c implementation file
cat > src/version.c << EOF
/*
* Auto-Generated Version Implementation
* DO NOT EDIT THIS FILE MANUALLY - Generated by build script
*/
#include "version.h"
const char* get_version(void) {
return VERSION_TAG;
}
const char* get_version_full(void) {
return VERSION_FULL_DISPLAY;
}
const char* get_build_info(void) {
return "Built on " BUILD_DATE " at " BUILD_TIME " from commit " GIT_HASH " on branch " GIT_BRANCH;
}
EOF
print_success "Generated version header files"
} }
# Build functions # Build functions
@@ -222,7 +158,6 @@ build_static() {
clean_project() { clean_project() {
print_status "Cleaning build artifacts..." print_status "Cleaning build artifacts..."
make clean make clean
rm -f VERSION src/version.h src/version.c
print_success "Clean completed" print_success "Clean completed"
} }
@@ -267,7 +202,7 @@ case "${1:-build}" in
;; ;;
version) version)
increment_version increment_version
print_status "Version information generated" print_status "Version tag updated"
;; ;;
*) *)
echo "OTP Cipher Build Script" echo "OTP Cipher Build Script"
@@ -279,10 +214,10 @@ case "${1:-build}" in
echo "Commands:" echo "Commands:"
echo " build - Build project with automatic version increment (default)" echo " build - Build project with automatic version increment (default)"
echo " static - Build with static linking" echo " static - Build with static linking"
echo " clean - Clean build artifacts and generated files" echo " clean - Clean build artifacts"
echo " install - Install to system (requires build first)" echo " install - Install to system (requires build first)"
echo " uninstall - Remove from system" echo " uninstall - Remove from system"
echo " version - Generate version files only" echo " version - Update version tag only"
echo "" echo ""
echo "Examples:" echo "Examples:"
echo " $0 build" echo " $0 build"

52
otp.c
View File

@@ -4215,7 +4215,7 @@ int handle_pads_menu(void) {
printf(" \033[4mA\033[0mdd entropy to pad\n"); printf(" \033[4mA\033[0mdd entropy to pad\n");
printf(" \033[4mS\033[0met default pad\n"); printf(" \033[4mS\033[0met default pad\n");
printf(" E\033[4mx\033[0mit\n"); printf(" E\033[4mx\033[0mit\n");
printf("\nSelect pad (by prefix): "); printf("\nSelect action: ");
char input[MAX_HASH_LENGTH]; char input[MAX_HASH_LENGTH];
if (!fgets(input, sizeof(input), stdin)) { if (!fgets(input, sizeof(input), stdin)) {
@@ -4224,7 +4224,7 @@ int handle_pads_menu(void) {
} }
input[strcspn(input, "\n")] = 0; input[strcspn(input, "\n")] = 0;
// Handle actions first // Handle actions
if (toupper(input[0]) == 'G') { if (toupper(input[0]) == 'G') {
int result = handle_generate_menu(); int result = handle_generate_menu();
if (result == 0) { if (result == 0) {
@@ -4306,54 +4306,10 @@ int handle_pads_menu(void) {
return handle_pads_menu(); return handle_pads_menu();
} else if (toupper(input[0]) == 'X') { } else if (toupper(input[0]) == 'X') {
return 0; // Exit to main menu return 0; // Exit to main menu
}
// Find matching pad by prefix
int selected_pad = -1;
for (int i = 0; i < pad_count; i++) {
if (strncmp(input, pads[i].chksum, strlen(input)) == 0) {
if (selected_pad == -1) {
selected_pad = i;
} else { } else {
// Multiple matches - ambiguous printf("Invalid action. Please select G, A, S, or X.\n");
printf("Ambiguous prefix. Multiple matches found.\n");
return 1;
}
}
}
if (selected_pad == -1) {
printf("No pad found matching prefix '%s'\n", input);
return 1;
}
// Show selected pad actions
printf("\n=== Pad: %.16s... ===\n", pads[selected_pad].chksum);
printf("Size: %s\n", pads[selected_pad].size_str);
printf("Used: %s (%.1f%%)\n", pads[selected_pad].used_str, pads[selected_pad].percentage);
printf("\nPad Actions:\n");
printf(" \033[4mI\033[0mnfo - Show detailed pad information\n");
printf(" \033[4mA\033[0mdd entropy - Enhance pad randomness\n");
printf(" \033[4mB\033[0mack to pad list\n");
printf("\nSelect action: ");
char action[10];
if (!fgets(action, sizeof(action), stdin)) {
printf("Error: Failed to read input\n");
return 1;
}
char action_choice = toupper(action[0]);
if (action_choice == 'I') {
return show_pad_info(pads[selected_pad].chksum);
} else if (action_choice == 'A') {
// Handle entropy addition
return handle_add_entropy_to_pad(pads[selected_pad].chksum);
}
// Default: back to pad list (recursive call)
return handle_pads_menu(); return handle_pads_menu();
}
} }
void get_directory_display(const char* file_path, char* result, size_t result_size) { void get_directory_display(const char* file_path, char* result, size_t result_size) {