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