Commit graph

146 commits

Author SHA1 Message Date
Leon Mika c89b09447c
Initial version of scripting (#40)
* scripting: added service and controller for scripting

* scripting: have got prompts working

Scripts are now running in a separate go-routine.  When a prompt is encountered, the
script is paused and the user is prompted for input.  This means that the script no
longer needs to worry about synchronisation issues.

* scripting: started working on the session methods

* scripting: added methods to get items and attributes

* scripting: have got loading of scripts working

These act more like plugins and allow defining new commands.

* scripting: have got script scheduling working

Scripts are now executed on a dedicated goroutine and only one script can run at any one time.

* scripting: added session.set_result_set(rs)

* scripting: upgraded tamarin to 0.14

* scripting: started working on set_value

* tamarin: replaced ad-hoc path with query expressions

* scripting: changed value() and set_value() to attr() and set_attr()

Also added 'delete_attr()'

* scripting: added os.exec()

This method is controlled by permissions which govern whether shellouts are allowed
Also fixed a resizing bug with the status window which was not properly handling status messages with newlines

* scripting: added the session.current_item() method

* scripting: added placeholders to query expressions

* scripting: added support for setting and deleteing items with placeholders

Also refactored the dot AST type so that it support placeholders.  Placeholders are not yet supported
for subrefs yet, they need to be identifiers.

* scripting: made setting the result-set push the current result-set to the backstack

* scripting: started working on byte encoding of attribute values

* scripting: finished attrcodec

* scripting: integrated codec into expression

* scripting: added equals and hashcode to queryexpr

This finally finishes the work required to store queries in the backstack

* scripting: fixed some bugs with the back-stack

* scripting: upgraded Tamarin

* scripting: removed some commented out code
2023-01-10 22:27:13 +11:00
Leon Mika cd9700569c Another fix to the release 2022-11-18 22:46:50 +11:00
Leon Mika e388bec89f Fixed some bugs with the releases 2022-11-18 22:29:59 +11:00
Leon Mika 55b8103416
Split the releases into a MacOS one and Linux/Windows one
This is to add support for building the MacOS binary using CGO.
2022-11-18 22:14:33 +11:00
Leon Mika 0c541da1c6 Changed worker for CI/CD back to ubuntu 2022-11-18 07:55:40 +11:00
Leon Mika 7e4c47a7b6 Changed running from 'ubuntu' to 'macos-12' 2022-11-18 07:53:26 +11:00
Leon Mika 917663fac0
Issue 33: Finished most aspects of the expression language (#38)
- Most aspects of scans and queries can now be represented using the expression language
- All constructs of the expression language can be used to evaluate items
2022-11-18 07:31:15 +11:00
Leon Mika 7d2817812c
Fixed various bugs and papercuts (#37)
- Enabled CGO for release builds so that copy to clipboard does not panic.
- Added a prompt to confirm quitting when pressing Esc or Ctrl+C
- Fixed the table prompt to not quit app on Esc when invoked with the table command.
2022-11-01 21:59:46 +11:00
Leon Mika 5e24f0e9d7 Updated the README file 2022-10-22 09:26:18 +11:00
Leon Mika fc75070a4f Fixed a few bugs
- Fixed a seg fault bug when cancelling a scan or query when no results are available yet
- Reduce the size of each page to return so that progress indicators work
2022-10-20 09:53:57 +11:00
Leon Mika 7eb4ea7222 Made keybinding names more consistent 2022-10-18 22:04:00 +11:00
Leon Mika 62f9c08e82 Fixed issues with homebrew tap 2022-10-17 10:23:27 +11:00
goreleaserbot 65226fc5ea Brew formula update for audax version v0.0.4 2022-10-15 23:22:19 +00:00
Leon Mika 5e5b7fbbf2 Fixed unit tests 2022-10-16 09:58:27 +11:00
Leon Mika bfd0943c4f Fixed some small paper-cuts
- Fixed a bug that was pushing duplicate view entries to the backstack
- The appended column will now be selected once added
2022-10-16 09:50:27 +11:00
Leon Mika b51c13dfb1
Issue 32: Fixed some TODOs in query expressions
- Fixed the gaps in conjunctions, disjunctions, and equality operator for expression value evaluation.
- Fixed the issue in which '^=' was treated as two separate tokens, it's now a single token.
2022-10-11 22:16:20 +11:00
Leon Mika 79692302af
Issue 23: Added progress indicators and cancellation (#34)
- Wrapped all table operations in a new foreground job context, which mediates foreground tasks.
- Added cancellation support and partial results for table read operations.
- Added the "mark" command, which can mark, unmark & toggle marked items
- Added support for alias arguments.
- Removed the "unmark" command, and replaced it as an alias to the "marked" command
- Fixed seg faults raised when there is no table shown in the result set.
2022-10-10 10:15:25 +11:00
Leon Mika 982d3a9ca7
Issue 18: Added a popup to modify table columns (#31)
Added a new popup to modify the columns of the table. With this new popup, the user can:

- Show and hide columns
- Move columns around
- Add new columns which are derived from the value of an expression
- Delete columns

Also got the overlay mechanisms working.
2022-10-04 22:23:48 +11:00
Leon Mika f373a3313a
A few bug-fixes and maintenance tasks (#30)
- Fixed a bug which was not properly detecting whether MacOS was in light mode.
- Fixed a bug which was breaking filtering with the table-selection mode.
- Upgraded bubble-tea.
2022-10-04 13:01:53 +11:00
Leon Mika efdc7f9e25
issue-28: added default limit as a setting (#29) 2022-09-30 22:28:59 +10:00
Leon Mika 93ec519127
Issue 24: Added read-only mode (#27)
- Added settings to workspace, and added the read-only mode
- Added the `-ro` field which will launch Dynamo-Browse in read-only mode
- Added the `set ro` to enable read-only mode, and `set rw` to enable read-write mode
2022-09-29 22:10:18 +10:00
Leon Mika a1717572c5
issue-22: Fixed expressions so that queries will be executed as queries (#25)
Augmented expressions so that queries that can be executed as queries on DynamoDB can be done so.
Also added an IR tree which is a simplified representation of the AST and will be used to plan the query.
2022-09-19 21:14:03 +10:00
goreleaserbot 0063d7c6d5 Brew formula update for audax version v0.0.3 2022-09-03 00:03:20 +00:00
Leon Mika ce04590b20
Merge pull request #21 from lmika/feature/issue-20
issue-20: Added binding action for prompting for tables
2022-09-03 09:45:48 +10:00
Leon Mika 454fcf2eae issue-20: Added binding action for prompting for tables
At the moment, this is not bound to anything
2022-09-03 09:41:47 +10:00
Leon Mika 5f76836166 Fixed a few cosmetic bugs
- Clear status messages when setting or deleting fields
- Fixed "Filter" status label
2022-08-31 20:46:53 +10:00
Leon Mika 0c377e231a
Fixed the default keybinding for prompting for filters 2022-08-30 15:11:30 +10:00
Leon Mika beffba3075
Merge pull request #17 from lmika/feature/issue-9
Issue 9: Added the ability to rebind actions to different keys
2022-08-29 20:50:35 +10:00
Leon Mika aa7ec9f863 issue-9: fixed unit tests 2022-08-29 20:45:34 +10:00
Leon Mika 24304d21c3 issue-9: added the RC file
Added the RC file which can be used to load commands on startup.  Also added the "echo"
command which can be used for debugging.
2022-08-28 10:54:25 +10:00
Leon Mika d9c9e5d845 issue-9: added clearing of existing bindings for keys 2022-08-25 22:31:33 +10:00
Leon Mika 7c5bfd27a3 issue-9: finishing keybinding service and implemented controller
Have now got rebinding keys working with the "rebind" command.
Still need to make sure key names are correct and implement rebinding
as part of an RC file and add bindings for the table.
2022-08-25 22:14:36 +10:00
Leon Mika 2f89610c51 issue-9: moved keybindings out into a separate type
Also started working on a service which can be used to rebind keys using reflection.
2022-08-24 22:06:29 +10:00
Leon Mika cb31da3806
Merge pull request #16 from lmika/feature/issue-8
issue-8: added going forward in backstack and restoring last view
2022-08-23 22:37:57 +10:00
Leon Mika 4c187ebb4d issue-8: added going forward in backstack and restoring last view 2022-08-23 22:33:20 +10:00
Leon Mika 1109f2c9ee
Merge pull request #14 from lmika/feature/issue-11
Issue 11: Added the ability to resize the table and item view
2022-08-21 09:45:19 +10:00
Leon Mika d4734846fc issue-11: added the last two views 2022-08-21 09:38:02 +10:00
Leon Mika 6d23e3ee2c issue-11: started working on toggling the size of table and item views 2022-08-20 11:28:08 +10:00
Leon Mika 7e87b3e5a6
Merge pull request #13 from lmika/feature/issue-10
issue-10: copy item to clipboard
2022-08-20 10:51:03 +10:00
Leon Mika 9ab5da32e2 issue-10: fixed unit tests 2022-08-20 10:47:56 +10:00
Leon Mika 90ec88d360 issue-10: copy item to clipboard
Added key binding to copy selected, or marked, items to clipboard.
2022-08-20 10:41:32 +10:00
Leon Mika f0bd3022cc
Merge pull request #12 from lmika/chore/ctrlret
ctrlret: replaced return types of controllers from tea.Cmd to tea.Msg
2022-08-18 21:45:04 +10:00
Leon Mika 5b6bf1f0ae ctrlret: replaced return types of controllers from tea.Cmd to tea.Msg
This dramatically cuts downs the number of closures.
2022-08-18 21:39:13 +10:00
Leon Mika 931b11cd0d
Merge pull request #7 from lmika/feature/backstack
Added the backstack to dynamo-browse
2022-08-14 09:49:01 +10:00
Leon Mika a1c03dcb63 backstack: fixed unit tests 2022-08-14 09:46:19 +10:00
Leon Mika bdd97f1b41 backstack: some code cleanup 2022-08-14 09:22:56 +10:00
Leon Mika cc58db2d49 backstack: have added the workspace flag 2022-08-14 09:20:24 +10:00
Leon Mika 6c5787b271 backstack: reimplemented the backstack
This is a much cleaner implementation.
2022-08-14 09:16:28 +10:00
Leon Mika ec9ac34d26 backstack: an initial complete version of the backstack
This needs a lot of work, and a fair bit of refactoring.
2022-08-13 11:42:21 +10:00
Leon Mika 721d3abe5e backstack: added saving of backstack to workspace 2022-08-11 22:23:39 +10:00