Commit Graph

219 Commits

Author SHA1 Message Date
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
David Dworken
cb16984f77 Pipe ctx into the slsa code to avoid context.TODO() 2022-09-21 20:22:34 -07:00
David Dworken
d226fab7ec Pipe ctx into the Update function 2022-09-21 20:20:43 -07:00
David Dworken
8002c5e942 Add homedir to context 2022-09-21 20:19:11 -07:00
David Dworken
fb401dab88 Resume using the modernc.org sqlite driver so it works with CGO_ENABLED=0 2022-09-21 19:49:24 -07:00
David Dworken
486feb3fea Add missing new lines 2022-09-21 19:13:53 -07:00
David Dworken
ceb1becfa6 Fix ctx wiring so installs work properly 2022-09-20 23:30:57 -07:00
David Dworken
694c2e2679 Untested: ctx wired through 2022-09-20 22:28:40 -07:00
David Dworken
e47bcfc993 Part way through migrating to context 2022-09-20 22:03:15 -07:00
David Dworken
5391ecd220 First version of working redaction with passing integration tests 2022-09-19 22:49:48 -07:00
David Dworken
1bf510ff8a Better offline handling, implemented the local portion of delete, and maybe fixed the bug when running tests on github actions 2022-09-18 09:42:24 -07:00
David Dworken
0b3ccb63a5 Skip reading history files if they don't exist 2022-09-17 12:22:29 -07:00
David Dworken
bad123a3dd Add tests for history importing and add output showing the number of imported entries 2022-09-17 11:49:31 -07:00
David Dworken
23315a7e75 Fix code signing bug and add the implementation for initial importing of existing history files 2022-09-17 11:21:42 -07:00
David Dworken
de1a6f3da8 Add info on bypassing SLSA to the error message 2022-09-16 23:02:52 -07:00
David Dworken
5a38a4a754 Treat EOF error as an offline error 2022-09-10 18:07:45 -07:00
David Dworken
e22dd10c18 More format specifiers 2022-09-07 23:32:25 -07:00
David Dworken
d54bece705 Add HomeDirectory to HistoryEntry so we can query with or without ~/ in the cwd atom 2022-09-07 23:20:31 -07:00
David Dworken
aef13b16d0 Offline first! Now if a devide is offline it will detect this and upload the entries later 2022-09-04 18:37:46 -07:00
David Dworken
74ed49dd1a Revert "Add completely broken support for an incrementing id"
This reverts commit da624cf8aa. This commit was just added for history purposes.
2022-09-04 15:40:30 -07:00
David Dworken
da624cf8aa Add completely broken support for an incrementing id 2022-09-04 15:40:18 -07:00
David Dworken
b63cc313fd Better timestamp stripping 2022-09-01 23:22:53 -07:00
David Dworken
e8f001c78b Add basic support for stripping out HISTTIMEFORMAT prefixes 2022-06-12 21:28:19 -07:00
David Dworken
3f32891469 Revert "Half implement querying based on relative and non-relative paths"
This reverts commit af05d823fe. I will pick up work on this later.
2022-06-12 20:28:40 -07:00
David Dworken
af05d823fe Half implement querying based on relative and non-relative paths 2022-06-12 20:28:33 -07:00
David Dworken
de606c52a7 Improve error message instead of panic 2022-06-04 22:29:07 -07:00
David Dworken
00f6bed62c Add a test for the install.py script 2022-06-04 22:27:04 -07:00
David Dworken
30ee41a6ea Automatic retries when the DB is busy 2022-06-04 22:06:50 -07:00
David Dworken
de15305fb5 Patch vendored slsa verifier and fix updates 2022-06-04 21:31:16 -07:00
David Dworken
05c67895c8 Fix bug with newly opened terminals where user hits control-c immediately in new terminal 2022-05-27 23:05:28 -07:00
David Dworken
e7de3d9d42 Bump allowable size difference (+ fix linter errors) 2022-05-27 22:41:52 -07:00
David Dworken
1da703e9c2 Working update code for macos 2022-05-26 23:45:08 -07:00
David Dworken
677b596d49 Debugging code signing, added error checking for my xattr code and discovered that arm xattrs aren't being persisted 2022-05-22 20:08:30 -07:00
David Dworken
feaa8b2bd1 Add a DB dump test that passes on zsh (is failing for an unknown reason on bash currently) + fix backup and restore for WAL files + better offline support 2022-05-01 22:37:26 -04:00
David Dworken
0499010981 Remove the 'e' prefix from api endpoints + implement backend APIs for clean loading of all data from other instances 2022-04-28 10:56:59 -07:00
David Dworken
4cb5773632 Add hex parsing for xattr setting + log rather than error when offline 2022-04-28 09:51:01 -07:00
David Dworken
93e59f37ec Fix downloading the xattr file 2022-04-25 22:21:17 -07:00
David Dworken
c79a510b9c Maybe working xattr support for code signing 2022-04-25 22:03:31 -07:00
David Dworken
74caf87eda Add basic xattr implementation (commiting to save it, about to delete most of it) 2022-04-25 21:42:28 -07:00
David Dworken
ff419e71f9 More debugging info for failing to install the update 2022-04-21 22:52:38 -07:00
David Dworken
980d299543 Run the command in the background for zsh 2022-04-21 22:25:24 -07:00
David Dworken
6a18504755 Enable WAL for increased concurrency, and add additional expectedOutput option for testDisplayTable 2022-04-20 22:13:10 -07:00
David Dworken
edfbf7769e Fix updating on m1 darwin
For some reason, calling unlink() on the binary causes all future spawned processes to die with a "signal: killed" error. I have no idea why this happens, but it doesn't seem to be necessary to call
unlink on darwin, so I'm just tweaking this to not call unlink on darwin. Also remove tidy from the pre-commit since macos ships with a truly ancient version of tidy
2022-04-20 21:57:37 -07:00
David Dworken
89fd59a132 Disabe CGO since it is incompatible with cross-compiling for darwin and swap to a non-cgo sqlite library 2022-04-20 17:28:19 -07:00
David Dworken
10ee085d4c Remove unnecessary set -m calls, speed up the local make acttest command, embed ReleaseVersion into the test server to fix the test failures on macos, and update install to be resistant to bashrc and zshrc not existing 2022-04-19 21:05:54 -07:00
David Dworken
76f12ab64a Swap to getting date in seconds since BSD date doesn't support nanos 2022-04-18 22:36:57 -07:00
David Dworken
ca1987a9ab Fix OBO that removed first character from recorded commands 2022-04-18 22:19:51 -07:00
David Dworken
ce0a0742b7 Maybe fix for macos recording hidden commands with bash 2022-04-18 22:08:48 -07:00
David Dworken
3553897101 Attempt to fix failing test on macos for bash 2022-04-18 21:41:49 -07:00
David Dworken
1cc36fa0ef Add todo, extra debugging output for failing mac test, and a check on resp.StatusCode 2022-04-18 21:28:41 -07:00
David Dworken
16055f982e Skip commands prefixed with a space for zsh + update tests + touch ~/.zshrc so tests can run on actions 2022-04-17 21:04:44 -07:00
David Dworken
aae18d44b9 Working basic zsh integration (with lots of failing tests that are currently getting skipped) 2022-04-17 19:54:17 -07:00
David Dworken
be6ccbbcc6 Add untested update operation that works with the new releases 2022-04-17 12:30:46 -07:00
David Dworken
8259fc4e45 For some reason macos includes N at the end of ints, fix this 2022-04-17 11:09:30 -07:00
David Dworken
cf55805578 Verify the version tag in SLSA too 2022-04-17 10:29:48 -07:00
David Dworken
8aa44e5e26 Add missing return 2022-04-16 21:54:34 -07:00
David Dworken
339b115542 Fix version comparison logic 2022-04-16 21:39:40 -07:00
David Dworken
158f08f5c6 Improved update flow
Using the previously added new API endpoint, the update flow can now skip updates if the latest version is already installed. This also improves the output by making it so update can print the version. Also improved the error handling.
2022-04-16 20:50:02 -07:00
David Dworken
3d7af0cd4b Add SLSA verification of updated binary
Currently the SLSA verifier is meant to be used a standalone binary. I copied a bit of code from their main (and imported the rest of their code as a library) in order to support embedding it as a library. This ensures that the updated hishtory passes SLSA L3.
2022-04-16 16:02:07 -07:00
David Dworken
c369661e53 More server-side logging + client-side logging 2022-04-16 00:44:47 -07:00
David Dworken
b09b725f49 Properly skip recording of commands prefixed with a space to match bash's history behavior 2022-04-15 00:04:49 -07:00
David Dworken
dc6fb6a47b Refactor tests to make them non-flakey and pass on actions
This required adding the ability to have hishtory run synchronously to avoid reconditions. I also added additional waiting code. Also a whole bunch of new tests and disabled gorm's default logger which also caued flakeyness
2022-04-14 20:18:49 -07:00
David Dworken
e2b5fd13bf tests passing inside act, hopefully on real actions 2022-04-13 21:30:27 -07:00
David Dworken
5325fc75ae Add negative conditions to search queries + tests + better error messages by including filename:line in error messages 2022-04-11 22:36:52 -07:00
David Dworken
97670c92f5 Display the hostname in the table 2022-04-09 14:52:10 -07:00
David Dworken
cfa41c676c Added info to README + two todos for future ideas 2022-04-09 14:26:43 -07:00
David Dworken
108e1526b8 trying again with ldflags + fixed update url 2022-04-08 22:56:44 -07:00
David Dworken
475497d7b7 Message when updated 2022-04-07 22:16:45 -07:00
David Dworken
f2e6de2eb3 pre-commit + stricter formatting + pre-commit fixes 2022-04-07 21:40:22 -07:00
David Dworken
c2465d7c99 refactored to move no longer shared things out of the shared/ folder 2022-04-07 21:05:58 -07:00
David Dworken
c48c4dc83f formatted 2022-04-06 22:44:10 -07:00
David Dworken
1065fff062 refactoring, better tests, commit hash, banner, and tested working locally 2022-04-06 22:43:07 -07:00
David Dworken
684511f4f7 working update 2022-04-06 18:18:46 -07:00
David Dworken
71fc809f9a tests are passing and getting close now. Need to test the live update flow along with more thorough testing for everything 2022-04-05 23:31:24 -07:00
David Dworken
e2acc6612a well, it builds :D but still failing all the tests 2022-04-04 22:07:01 -07:00