diff --git a/otp-arm64 b/otp-arm64 new file mode 100755 index 0000000..e1c838d Binary files /dev/null and b/otp-arm64 differ diff --git a/otp-x86_64 b/otp-x86_64 new file mode 100755 index 0000000..63f264a Binary files /dev/null and b/otp-x86_64 differ diff --git a/src/main.c b/src/main.c index 41ae2be..345a555 100644 --- a/src/main.c +++ b/src/main.c @@ -24,8 +24,9 @@ int main(int argc, char* argv[]) { // Load preferences load_preferences(); - // Detect interactive mode: only true when running with no arguments - set_interactive_mode((argc == 1)); + // Detect interactive mode: true when running with no arguments AND no piped input + int is_interactive = (argc == 1 && !has_stdin_data()); + set_interactive_mode(is_interactive); // Check for OTP thumb drive on startup char otp_drive_path[512]; @@ -46,15 +47,25 @@ int main(int argc, char* argv[]) { } int command_line_mode(int argc, char* argv[]) { - // Check for help flags first - if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--h") == 0 || + // Check for help flags first (only if we have arguments) + if (argc > 1 && (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--h") == 0 || strcmp(argv[1], "-help") == 0 || strcmp(argv[1], "--help") == 0 || - strcmp(argv[1], "help") == 0) { + strcmp(argv[1], "help") == 0)) { print_usage(argv[0]); return 0; } - if (strcmp(argv[1], "generate") == 0 || strcmp(argv[1], "-g") == 0) { + // If no arguments but piped input, default to encrypt mode + if (argc == 1 && has_stdin_data()) { + char* piped_text = read_stdin_text(); + if (piped_text) { + int result = pipe_mode(argc, argv, piped_text); + free(piped_text); + return result; + } + } + + if (argc > 1 && (strcmp(argv[1], "generate") == 0 || strcmp(argv[1], "-g") == 0)) { if (argc != 3) { printf("Usage: %s generate|-g \n", argv[0]); printf("Size examples: 1024, 1GB, 5TB, 512MB\n"); diff --git a/src/pads.c b/src/pads.c index 865c081..8f48402 100644 --- a/src/pads.c +++ b/src/pads.c @@ -193,8 +193,10 @@ int generate_pad(uint64_t size_bytes, int display_progress) { printf("Pad file set to read-only\n"); printf("Use 'Add entropy' in Pads menu to enhance randomness.\n"); - // Pause before returning to menu to let user see the success message - print_centered_header("Pad Generation Complete", 1); + // Pause before returning to menu to let user see the success message (only in interactive mode) + if (get_interactive_mode()) { + print_centered_header("Pad Generation Complete", 1); + } return 0; }