Commit Graph
100 Commits
Author SHA1 Message Date
RandyTheSilly bb1ecc5bae Handle or explicitly ignore all remaining errors 2024-08-12 14:13:48 -04:00
RandyTheSilly ed9c4e91ff Implement error-specific exit codes 2024-08-11 20:21:01 -04:00
RandyTheSilly 06b9527a33 Properly format function documentation comments 2024-08-11 16:37:28 -04:00
RandyTheSilly 9f43337437 Call GetSSHClient once in a full sync procedure, reusing the client (fixes multiple keyfile passphrase prompts) 2024-08-11 15:01:24 -04:00
RandyTheSilly 102ef6955c Mention MUTN in README.md 2024-08-08 20:10:14 -04:00
RandyTheSilly 38f3896e99 [wiki] Add bug mentioned in developer guide to known bugs list 2024-08-08 20:04:29 -04:00
RandyTheSilly cf796c984d [wiki] Add server binary build info; link to developer guide from README.md 2024-08-08 20:00:04 -04:00
RandyTheSilly 49ec3d6c62 [wiki] Fix links to various wiki pages 2024-08-08 19:45:25 -04:00
RandyTheSilly baf4236162 Add roadmap to README.md 2024-08-08 19:43:00 -04:00
RandyTheSilly 13af0a97b5 Add gofmt targets 2024-08-08 19:16:26 -04:00
RandyTheSilly e31e451bf5 Update .gitignore 2024-08-08 18:44:06 -04:00
RandyTheSilly f5e5cd31bb Move libmuttonserver.go to this repo 2024-08-08 17:39:18 -04:00
RandyTheSilly d82188f566 [wiki] Remove extra subdirectory 2024-08-08 16:57:13 -04:00
RandyTheSilly ef2a3dbbb2 Add go.mod and go.sum 2024-08-08 16:53:29 -04:00
RandyTheSilly c83a3aa018 Rename "backend" package to "core" 2024-08-08 16:49:34 -04:00
RandyTheSilly ba4f7f2340 Move packages out of src/ 2024-08-08 16:35:03 -04:00
RandyTheSilly 57d7cdf8f9 Restore README.md and commit.sh (lost in migration) 2024-08-08 16:15:10 -04:00
RandyTheSilly a0d9318fe9 Prepare for release v0.2.0 2024-08-06 14:57:09 -04:00
RandyTheSilly 9df37b0890 Announce TOTP code has been copied only after the entry has already been decrypted 2024-07-30 18:32:14 -04:00
RandyTheSilly afaef3685b [wiki/MUTN] Add basic setup and usage instructions 2024-07-19 17:56:42 -04:00
RandyTheSilly a382d31997 Fail early if adding an entry to a directory that does not exist (or if the directory is a file) 2024-07-19 15:53:54 -04:00
RandyTheSilly af88c89b50 Fix rename prompting for new location before verifying old one exists 2024-07-19 13:48:14 -04:00
RandyTheSilly 0f4eff440e [wiki/libmutton] Update known bugs list and add a relevant bug to the developer guide 2024-07-18 17:51:05 -04:00
RandyTheSilly a76452d9bb Improve StringGen to allow creating file name-safe complex strings; remove in-code references to future additions 2024-07-18 17:04:48 -04:00
RandyTheSilly fa35469ca9 When server and client clocks are out of sync, warn the user that they should update mod times even if the pending upload operations appear correct 2024-07-18 16:16:50 -04:00
RandyTheSilly 6366800c84 Do not upload/download any entries if the client and server time are more than 30 seconds out of sync; appropriately warn the user 2024-07-18 15:55:50 -04:00
RandyTheSilly 7a48544932 Fix ANSI escapes (on Windows) not being interpreted after using GPG pinentry 2024-07-17 18:54:29 -04:00
RandyTheSilly d5e07bdeb6 Allow writing to different section headers in libmutton.ini 2024-07-17 15:49:45 -04:00
RandyTheSilly 3ae85adc18 Move text editor determination to cli package 2024-07-17 14:59:57 -04:00
RandyTheSilly 7ab0c91c0e Allow parsing different section headers in libmutton.ini 2024-07-17 14:44:18 -04:00
RandyTheSilly 93f8e1d867 [wiki/libmutton] Add config file info to developer guide 2024-07-15 14:54:47 -04:00
RandyTheSilly a2a92985af Replace use of ASCII control characters with unicode characters allowed in Windows filenames (fixes shearing with a Windows server) 2024-07-10 15:23:13 -04:00
RandyTheSilly 6b3a136c5e Fix "shear" throwing errors if no device ID is present (instead of running in offline mode) 2024-07-10 02:07:59 -04:00
RandyTheSilly d5146d7625 Split sync.Rename into separate functions for client and server to avoid compiling SSH into the server binary 2024-07-10 00:01:59 -04:00
RandyTheSilly cef8c47161 Implement synchronized renaming 2024-07-09 23:18:13 -04:00
RandyTheSilly f8d23489c0 Append UNIX timestamp to device ID to guarantee uniqueness 2024-07-09 16:42:47 -04:00
RandyTheSilly 6273485aea Do not always save executable name in memory in sync package 2024-07-09 16:04:03 -04:00
RandyTheSilly 9a8f2db78e Fix printing full executable path in error messages on Windows 2024-07-09 15:20:36 -04:00
RandyTheSilly 08af2a3761 [wiki/libmutton] Add developer guide (for third-party implementations) 2024-07-07 23:52:33 -04:00
RandyTheSilly 40c5db5940 [wiki/libmutton] Add guide for migrating from other password managers 2024-07-07 23:25:25 -04:00
RandyTheSilly 5691ff852d [wiki/libmutton] Add list of planned breaking changes 2024-07-07 22:23:21 -04:00
RandyTheSilly 8f68da4d28 [wiki/MUTN] Add list of Windows quirks 2024-07-06 00:18:32 -04:00
RandyTheSilly 6ab274b99f Implement initial markdown wiki w/copy of clipboard troubleshooting info from sshyp 2024-07-05 23:42:40 -04:00
RandyTheSilly eea4570a89 Replace most occurrences of os.Exit(0) in the backend and sync packages with a custom backend.Exit function that can allow "soft exit" in GUI/TUI environments to avoid killing the entire process; currently all major errors still result in killing the entire process 2024-07-05 22:18:17 -04:00
RandyTheSilly ec0587ba5b Remove mention of "mutn" in sync package error messages to account for third-party CLI clients 2024-07-05 21:55:56 -04:00
RandyTheSilly 349cd49e4d Handle error for failing to create local device ID file 2024-06-05 18:29:38 -04:00
RandyTheSilly 779d9d0c78 Improve error clarity in cli.editNote 2024-06-05 18:19:01 -04:00
RandyTheSilly dea4f56190 Handle error in writeToStdin; remove unused function removeFile 2024-06-05 18:05:26 -04:00
RandyTheSilly 321bfc5194 Handle error for GPG key generation failure 2024-06-05 17:53:30 -04:00
RandyTheSilly a804cf7cff Handle error for failing to read clipboard contents on all platforms 2024-06-05 17:45:49 -04:00
RandyTheSilly f7cc27f88d Improve generic UNIX clipboard clearing logic 2024-06-05 17:43:21 -04:00
RandyTheSilly 641648b815 Provide feedback after successful server directory initialization 2024-06-05 17:24:45 -04:00
RandyTheSilly 05371866ce Write and append to config file using ini package 2024-06-05 14:56:17 -04:00
RandyTheSilly 9693d2608b Enforce more consistent meanings for the various field separator characters 2024-06-04 21:51:58 -04:00
RandyTheSilly 3c5f508835 Server stdin migration: register 2024-06-04 20:05:12 -04:00
RandyTheSilly b62eb70036 Server stdin migration: shear 2024-06-04 15:57:00 -04:00
RandyTheSilly bdbf2af091 Server stdin migration: fetch 2024-06-04 15:38:46 -04:00
RandyTheSilly da5a435ed6 Server stdin migration: addfolder 2024-06-04 15:33:50 -04:00
RandyTheSilly 0b7ce10a78 Add initial support for reading stdin from the server binary 2024-06-04 15:09:57 -04:00
RandyTheSilly 2d77a294bd Fix Windows sync (WalkEntryDir now returns only UNIX-style separators); fix setting remote mod time on remote files when downloading; fix server binary compilation; fix init failing silently during SSH configuration 2024-05-31 01:23:50 -04:00
RandyTheSilly 55a8f0e9ca Fix init deleting device ID immediately after generating it; fix sync failure for non-manual syncs 2024-05-30 23:25:08 -04:00
RandyTheSilly c3dd0ae737 Save server EntryRoot and OS type during init, use to progress toward Windows server support 2024-05-30 22:57:05 -04:00
RandyTheSilly 1571e0a53b Simplify clipboard build constraints 2024-05-30 22:21:39 -04:00
RandyTheSilly b71aaf6568 No longer unnecessarily send client OS type to server 2024-05-30 22:15:51 -04:00
RandyTheSilly 5d4232637b Lay groundwork for NT/UNIX-like sync interoperability 2024-05-30 22:12:29 -04:00
RandyTheSilly 64001fa76a Add "wsl_clipboard" build tag for creating Linux binaries that use the Windows clipboard 2024-05-29 15:42:15 -04:00
RandyTheSilly 971556aabc Reorganize function parameters to not specify repeat types 2024-05-29 13:23:08 -04:00
RandyTheSilly 53f88e8739 Fix error when shearing without a device ID (offline mode) 2024-05-29 13:07:26 -04:00
RandyTheSilly c2f6023cbe Move TOTP secrets to a dedicated entry field (breaks sshyp entry format compatibility) 2024-05-21 19:21:42 -04:00
RandyTheSilly ca7633d791 When syncing deletions, specify that a target is only sheared if it exists 2024-05-19 21:20:22 -04:00
RandyTheSilly cfa61c4170 Format deletions messages to match new upload/download messages 2024-05-19 21:14:23 -04:00
RandyTheSilly 188e118a0c Set modification times during syncs - sync support is now usably functional 2024-05-19 21:04:07 -04:00
RandyTheSilly c5b7e76b88 Do not call sftpSync if no entries need to be uploaded/downloaded 2024-05-19 20:24:42 -04:00
RandyTheSilly bc9f8ed971 Only call sftpSync once, as it now iterates over provided lists without the need to create a new sftp client for each entry 2024-05-19 20:20:02 -04:00
RandyTheSilly f320c7887f Reduce size of server binary by not compiling SSH 2024-05-19 19:34:28 -04:00
RandyTheSilly 2525eca904 Switch from SCP to SFTP for sync 2024-05-19 17:30:39 -04:00
RandyTheSilly 0e4a796ed5 Promote native sync to replace sshyp-based sync on all platforms 2024-05-17 19:49:49 -04:00
RandyTheSilly ecce45cfeb Make server respond to "fetch" with output formatted for the client's OS family 2024-05-17 19:36:23 -04:00
RandyTheSilly 332a932d80 Fix building for Windows 2024-05-17 18:08:44 -04:00
RandyTheSilly 2a9c68e353 Implement initial SCP functionality (not yet usable due to mod times not being preserved) 2024-05-17 15:44:15 -04:00
RandyTheSilly f448d914d6 Ensure a device ID exists when sending a "fetch" command to libmuttonserver 2024-05-17 12:32:05 -04:00
RandyTheSilly 224289d404 Fix import cycle (over SSH keyfile passphrase input) 2024-05-17 12:25:10 -04:00
RandyTheSilly 278a672095 Handle instances where the server does not respond to "fetch" as expected 2024-05-17 11:48:06 -04:00
RandyTheSilly 2bdfb43484 Implement initial support for passphrase-protected SSH keyfiles 2024-05-17 11:42:44 -04:00
RandyTheSilly b9688d29f1 Add help and version info for server binary 2024-05-16 22:22:12 -04:00
RandyTheSilly cfb2890b8f Remove pre-existing config directory during init, structure Windows config directory more similarly to UNIX 2024-05-16 21:40:02 -04:00
RandyTheSilly a70e92fb14 Move device ID generation to sync.DeviceIDGen 2024-05-16 21:26:42 -04:00
RandyTheSilly 8bd6bfe8ab When a folder is created on the client, also create it on the server 2024-05-16 21:15:16 -04:00
RandyTheSilly e727242e90 Enable real sync deletions on client 2024-05-16 18:14:57 -04:00
RandyTheSilly 0270287c63 Sync remote folders to client 2024-05-16 18:02:19 -04:00
RandyTheSilly e80253ef19 Parse deletions per-deviceID 2024-05-16 17:46:03 -04:00
RandyTheSilly cb9d082232 Implement device ID server registration and server-side init 2024-05-16 17:14:42 -04:00
RandyTheSilly 171a58cf7d Implement initial server-side shearing logic 2024-05-16 16:35:05 -04:00
RandyTheSilly c92d938c3d Map entries to mod times from the beginning 2024-05-16 14:39:33 -04:00
RandyTheSilly 6fc91e0c70 Implement initial sorting/syncing logic - not yet complete or utilized 2024-05-15 18:36:37 -04:00
RandyTheSilly 6f10a041de Check against ~/.ssh/known_hosts 2024-05-15 17:12:09 -04:00
RandyTheSilly 4c3b5bf7ae Better fetch remote data in a way that does not add blank items to slices 2024-05-15 16:57:46 -04:00
RandyTheSilly 7a5ff7fac9 Implement initial server-side code 2024-05-15 16:25:42 -04:00
RandyTheSilly cf184e627e Implement initial SSH data retrieval 2024-05-15 14:58:21 -04:00
RandyTheSilly b424001b6f Initial groundwork for native sync support 2024-05-11 20:52:38 -04:00