Commit Graph

224 Commits

Author SHA1 Message Date
David Dworken
ff98a7907c
Add preliminary support for persisting pre-saved history entries remotely 2023-09-21 12:39:04 -07:00
David Dworken
1c4570586c
Increase max supported line length for #93 2023-09-19 18:59:09 -07:00
David Dworken
4f592f4aef
Automatically retry search queries when the DB is locked to increase reliability (especially when the backend is down, which leads to more queries, and thus more instances of the DB being locked) 2023-09-18 19:22:26 -07:00
David Dworken
134061085b
Fix bug in searching logic that caused gorm to template in NULL for non-null values 2023-09-17 20:24:48 -07:00
David Dworken
c5a7245991
Add bug fix for presaving history where entries would sometimes end up duplicated 2023-09-14 21:01:13 -07:00
David Dworken
01d9924cc0
Check sqlite DB error messages with Contains to be slightly more lenient 2023-09-14 12:32:50 -07:00
David Dworken
d4e01ceb11
Add another error message substring for detecting errors due to being offline, to improve #30 2023-09-13 22:49:40 -07:00
David Dworken
e8ceb02138
Move tui.go out of lib and into a separate package 2023-09-13 22:47:48 -07:00
David Dworken
6d6a1a5e12
Move a bunch of update-specific code out of the generic lib.go file and into the update command 2023-09-13 22:45:49 -07:00
David Dworken
6540b4dbf6
Improve logged error messages for API failures 2023-09-13 20:24:25 -07:00
David Dworken
763c8208f7
Make RetryingDbFunction more lenient so that it always ignores UNIQUE constraint errors, since if a DB.Create returns a UNIQUE error, then the create is not actually necessary 2023-09-13 19:20:15 -07:00
David Dworken
57c5a69f7d
Fix bug where we failed to delete pre-saved history entries due to race conditions causing the DB to be locked 2023-09-12 18:55:13 -07:00
David Dworken
2ccbb8d587
Store timestamps in DB in Unix time, and display them in the Local time for consistent TZs in displays, and to ensure ordering is correct
This fixes a bug where entries could be out of order if they were recorded on machines in different TZs (e.g. if one machine had the TZ set to UTC). Admittedly, this commit isn't a perfect fix since
it doesn't change all the existing hishtory entries to be stored in UTC, but this just means that the ordering bug will continue to exist for historical entries, but be fixed for new entries. And
for our purposes, that is good enough. :)

 # Please enter the commit message for your changes. Lines starting
2023-09-09 12:28:01 -07:00
David Dworken
c73b10011b
Add TODO for a bug where sorting entries by timestamps in different timezones causes issues 2023-09-07 18:09:30 -07:00
David Dworken
578113e07c
Revert "use errors.Is to determine what the error is" since it doesn't work with modernc.org/sqlite which we need in order to avoid using CGO (which we do to enable easy cross-compiles)
This reverts commit 1589f77956. When building with CGO_ENABLED=0, this code will fail to build.
2023-09-06 20:21:00 -07:00
David Dworken
c5bdee9ad5
Merge pull request #102 from lsmoura/sergio/no-ctx-ptr
Remove context pointers since there is no need to pass around a pointer to an interface
2023-09-06 19:58:08 -07:00
Sergio Moura
a12b0e5f6f no context pointers 2023-09-05 15:45:17 -04:00
Sergio Moura
1589f77956 use errors.Is to determine what the error is 2023-09-05 15:37:42 -04:00
Sergio Moura
83ad8c7b1f wrap errors with %w instead of using %v 2023-09-05 15:08:55 -04:00
David Dworken
66f3dc13ec
Add support for displaying the user as a column via the 'User' column 2023-08-28 12:19:14 -07:00
David Dworken
2490082088
no-op refactoring: Move history entry building code from lib.go to cmd file for saving history entries 2023-08-27 22:05:24 -07:00
David Dworken
5dae81d336
Sort by start_time in beta mode only, to fix failing tests caused by changing the sorting 2023-08-27 15:20:40 -07:00
David Dworken
25ec191f1a
Implement pre-saving feature to ensure that long-running/non-terminating commands are saved in hishtory 2023-08-27 14:24:59 -07:00
David Dworken
765c1c18d0
Remove && false to enable the getwd syscall as a fallback 2023-02-28 17:44:05 -08:00
David Dworken
ff24b66fce
Fix unescape function per comments on #73 and add tests for searching for a backslash 2023-02-20 15:46:39 -08:00
David Dworken
0a694c39d5
Add workaround for #69 that avoids go's getCwd method that relies on stat rather than getwd 2023-02-20 12:42:23 -08:00
David Dworken
27cd544524
Add support for arm7 for #63 to support raspberry pis 2023-02-18 22:00:39 -08:00
David Dworken
f2298def32
Ignore a single dash as a token to improve search behavior for queries like 'ls -' to improve #67 2023-02-18 21:46:51 -08:00
David Dworken
2ae54ef74e
Simplify stripBackslash 2023-02-14 08:47:38 -08:00
David Dworken
162dd86893
Add unit tests + rename method 2023-02-13 22:26:02 -08:00
David Dworken
b6eb4da4f3
Rename deEscape to unescape 2023-02-13 21:36:54 -08:00
Håkan Fouren
f08cac491c
Use rune instead of byte when traversing strings 2023-02-05 02:13:42 +08:00
Håkan Fouren
9062c24a7e
Allow search strings to escape special chars ' ', ':' and '-' using '\' 2023-02-05 02:13:42 +08:00
David Dworken
d15376f37d
Refactor out deletion request handling to prep for #33 2022-12-18 00:19:52 -08:00
David Dworken
f8b51e49da
Support customizing HISHTORY_PATH for people who want to install hishtory in an alternate location to fix #54 2022-12-16 22:22:57 -08:00
David Dworken
7c86b812bf
Add support for linux arm64 for #48 2022-12-11 20:39:45 -08:00
David Dworken
233ca7ecd3
Treat TLS timeout as an offline error for #50 2022-12-10 09:43:02 -08:00
David Dworken
35444bf56e
Swap ioutil to non-deprecated alternatives + clean up pre-commit errors 2022-11-27 11:59:06 -08:00
David Dworken
5249ee6709
Add better handling for invalid searches in the TUI + better error messages in a couple other places to improve #40 2022-11-27 08:54:34 -08:00
David Dworken
c603537137
Optimize the apiSubmit function to ensure that it doesn't lead to errors from large insertions 2022-11-26 10:31:43 -08:00
David Dworken
f5adac5140
Move code out of lib that is only referenced for one command 2022-11-19 17:14:27 -08:00
David Dworken
ab6bb719a7
Move code out of lib that is only referenced for one command 2022-11-19 17:12:43 -08:00
David Dworken
d9c4a59ddd
Move code out of lib that is only referenced for one command 2022-11-19 17:06:28 -08:00
David Dworken
86f9d67aff
Fix test failures caused by the cobra install command not respecting the secret key
Also added a persistLog() function so that I can easily inspect the hishtory logs from test runs.
2022-11-16 20:28:25 -08:00
David Dworken
fe6394d1b5
Some test fixes for the cobra integration 2022-11-16 08:03:23 -08:00
David Dworken
c59de42008
More refactoring to use cobra 2022-11-16 08:03:23 -08:00
David Dworken
49a1035169
Fix flakey test failures by removing cache=shared which is a discouraged mode (https://www.sqlite.org/sharedcache.html). WAL is sufficient for our purposes. Plus fix a bug where the TUI would go into an infinite loop if there were zero results. 2022-11-15 23:20:19 -08:00
David Dworken
a18d444d09
Treat connect timeouts as network failures to fix #30 2022-11-14 16:29:55 -08:00
David Dworken
c36e147fae
respect zdotdir to fix #29 2022-11-13 15:59:59 -08:00
David Dworken
3e2373d76e
More fixes for github action failures + add link to where to file a bug 2022-11-13 06:42:37 -08:00
David Dworken
86adcb64f6
Remove debug print 2022-11-12 18:46:14 -08:00
David Dworken
0268554903
Rework history importing to ensure we read from HISTFILE exactly once and still always read the standard bash/zsh hist files 2022-11-12 16:39:21 -08:00
David Dworken
15abcd8d13
Strip history entries with zsh weirdness rather than skip them + ensure the hishtory import command runs a full re-import 2022-11-12 16:30:59 -08:00
David Dworken
e6fc09cc5d
Remove debug logs 2022-11-12 16:08:39 -08:00
David Dworken
e72ef668ea
Add custom timestamp format as requested in the original HN thread 2022-11-11 17:17:54 -08:00
David Dworken
e520b23858
Improve history importing to not double import HISTFILE + improve tests 2022-11-11 18:12:23 -05:00
David Dworken
42e0ac2195
Document that we use WAL + run a checkpoint after hishtory imports 2022-11-11 17:14:11 -05:00
David Dworken
be0a61a7ea
Trim spaces when comparing commands for duplicates to fix #26 2022-11-11 10:54:00 -05:00
David Dworken
21a7a48afb
Migrate to logrus so we can auto-rotate the log file 2022-11-09 16:14:44 -08:00
David Dworken
6ded150f4a
Respect HISTFILE for bash history too 2022-11-09 15:15:08 -08:00
David Dworken
df58d56829
Configure the bash_profile for linux too 2022-11-03 22:38:46 -07:00
David Dworken
d4ca466314
Import initial history from fish too 2022-11-03 22:32:55 -07:00
David Dworken
c1d17842c4
Write the config fragment to the bash_profile for MacOs to fix #14 2022-11-03 21:01:57 -07:00
David Dworken
6dea8a989e
Add config option to filter out duplicate history entries as requested in #10 2022-11-03 20:36:36 -07:00
David Dworken
846f256fa4
Support a TMPDIR variable in case /tmp/ is mounted noexec 2022-11-03 18:04:16 -07:00
David Dworken
185d2739c7
Add offline mode for hiSHtory 2022-11-03 13:16:45 -07:00
David Dworken
eae127bd14
Fix broken uninstall if specific shells aren't installed 2022-11-03 13:01:06 -07:00
David Dworken
17ae676da0
Add uninstall command + tests for uninstall 2022-11-02 19:41:49 -07:00
David Dworken
e824665f2c
Add || true so that it works on linux too 2022-11-01 14:33:27 -07:00
David Dworken
8a3969cfc4
Add basic untested ability to do searches using atoms containing custom columns 2022-11-01 10:23:35 -07:00
David Dworken
cdc5421a7b Move testutils to a separate package so as to move test-only code out of the main binary 2022-10-27 21:53:47 -07:00
David Dworken
fb258627df Migrate to using golden files for tests + get all existing tests passing again 2022-10-27 21:20:33 -07:00
David Dworken
16fa64b7a7 Add support for the TUI displaying custom columns 2022-10-26 22:11:07 -07:00
David Dworken
10d26fa407 Make the custom column display code support entries that lack a newly configured custom column 2022-10-26 00:44:26 -07:00
David Dworken
890ddfd99c Add ability to display columns that map to a custom column 2022-10-26 00:35:36 -07:00
David Dworken
07e4c781e4 Add code to build the custom columns from whatever is configured 2022-10-23 22:01:53 -07:00
David Dworken
51b41aa171 Add custom columns to config + use them in the non-TUI query 2022-10-23 20:54:46 -07:00
David Dworken
ebf8de2b1f Refactor to enable control-r by default on upgrade + pave the way for prompts in the future 2022-10-23 19:29:29 -07:00
David Dworken
41586ba034 Remove the dedicated test shell scripts and instead auto-generate them 2022-10-23 17:35:02 -07:00
David Dworken
253f2fdc27 Enable control-r binding for new installs + prompt upgrades on whether they want to enable control-r bindings 2022-10-23 16:51:39 -07:00
David Dworken
aa3f449885 Skip recording empty history commands 2022-10-23 15:40:30 -07:00
David Dworken
2ee050a629 mkdir ~/.config/fish if it doesn't exist yet 2022-10-19 21:24:43 -07:00
David Dworken
db4295e745 Add the testing fish config 2022-10-18 20:16:58 -07:00
David Dworken
abe231f5b0 Initial non-unit tested version of fish support 2022-10-18 19:55:41 -07:00
David Dworken
2c6061e497 Treat i/o timeouts as offline errors too 2022-10-18 11:52:52 -07:00
David Dworken
ab7db995aa Restore stdin import for the hishtory import command 2022-10-16 09:51:52 -07:00
David Dworken
d255131d68 Fix bug where reading stdin would cause the install to hang 2022-10-16 09:47:26 -07:00
David Dworken
37f351bb8a Add basic undocumented tui for querying under the hishtory tquery command 2022-10-16 09:22:34 -07:00
David Dworken
7f75f10b3f Treat 502 and 503 errors from the LB as network errors so they get silenced and retried 2022-10-15 10:12:18 -07:00
David Dworken
9da18eb7d5 Chunk the uploads when reuploading to avoid having one giant request 2022-10-10 22:04:59 -07:00
David Dworken
20af97c2d2 Fix bug where hishtory import wouldn't upload entries and thus those entries would be forever on the local device only 2022-10-09 17:19:15 -07:00
David Dworken
c16d260643 Make the reupload command more efficient by sending multiple entries at once 2022-10-09 17:10:11 -07:00
David Dworken
30e6f048ab Add better handling for SLSA errors 2022-10-02 20:14:54 -07:00
David Dworken
757ebb9547 Prompt people if they run hishtory init and already have a bunch of entries + fix tests + add TODOs + add hishtory version to requests 2022-10-01 09:50:06 -07:00
David Dworken
6cd7fa00fc Have hishtory import also read from stdin 2022-09-30 23:50:25 -07:00
David Dworken
36993fb12b Add another error message that means the device is offline 2022-09-29 22:43:03 -07:00
David Dworken
06590601f0 Add fix for bash weirdness introduced by the previous commit 2022-09-27 22:30:35 -07:00
David Dworken
9895a5c677 Improve copy function error checking + delete make fuzz because of https://github.com/golang/go/issues/52569 2022-09-22 23:20:21 -07:00
David Dworken
c6d4f1ef68 Fix missing newline in zshrc, add test for hishtory redact prompting, and tag TODOs with plans 2022-09-22 18:22:06 -07:00
David Dworken
ee6680f571 Remove debugging information and give up on that test, and add work around for weird zsh bug with importing 2022-09-22 18:09:51 -07:00