Commit Graph
100 Commits
Author SHA1 Message Date
Riyyi 7c1f95e850 Util: Prevent unnecessary copy assignment calls 2022-07-15 12:47:08 +02:00
Riyyi 0841e49b46 Util: Add user-defined string literal for Json::Value 2022-07-14 20:39:37 +02:00
Riyyi 3ea87a1d28 Util: Print Json error messages to stderr 2022-07-14 15:36:53 +02:00
Riyyi 4ea1242247 Manager: Switch to own JSON parser, remove nlohmann/json 2022-07-12 21:24:58 +02:00
Riyyi d6cd90ae4a Util: Rename Json::Value m_value union variables 2022-07-12 12:36:03 +02:00
Riyyi b76223693b Util: Add Parser and Serializer to Value friends 2022-07-12 12:07:49 +02:00
Riyyi ad137576a8 Util: Make character breaks in Lexer more clear syntactically 2022-07-12 11:17:34 +02:00
Riyyi 5835c63bda Util: Rename Array m_values -> m_elements 2022-07-12 11:06:46 +02:00
Riyyi aa283f8c75 Test: Add Json test cases 2022-07-12 02:28:22 +02:00
Riyyi 39329caf22 Util: Fix empty Object {} parsing 2022-07-12 02:00:49 +02:00
Riyyi a33f35faab Util: Rearrange Parser functions 2022-07-12 01:54:15 +02:00
Riyyi aa5b5117ad Util: Change seekForward() to go 1 step after the match 2022-07-12 01:54:15 +02:00
Riyyi 51e788a5ad Util: Change Token element access to use at() 2022-07-12 01:54:15 +02:00
Riyyi c7e4eb2575 Util: Add EOF detection in Parser getArray() getObject() 2022-07-12 01:54:15 +02:00
Riyyi 55ed70353a Util: Fix trailing comma in Object error message 2022-07-11 19:33:54 +02:00
Riyyi abb075939f Util: Properly detect empty Tokens and multiple root elements 2022-07-11 19:08:30 +02:00
Riyyi a3ab6aecfa Util: Fix comma placement in error message 2022-07-11 00:49:27 +02:00
Riyyi 097be4c012 Util: Fix Serializer trailing commas in Object dumping
The .end() returns an iterator one past the last pair, so it would
always add a comma after the last member.
2022-07-10 21:42:48 +02:00
Riyyi ea7049306e Util: Fix empty Array parsing 2022-07-10 16:13:44 +02:00
Riyyi fc3dc936fa Util: Fix line count detection for non-trailing newline in Job 2022-07-10 15:58:50 +02:00
Riyyi f2ea84be0f Util: Fix to break at the end of the file in Lexer 2022-07-10 15:49:34 +02:00
Riyyi 003db7332d Util: Add fromJson() functions for Object Value types 2022-07-10 00:56:39 +02:00
Riyyi 8797f695e0 Util: Fix type check 2022-07-10 00:41:28 +02:00
Riyyi 74dd24a516 Util: Add flexible constructor toJson() to Json::Value 2022-07-10 00:33:33 +02:00
Riyyi 5c95288874 Util: Move staticConst<T> to separate header 2022-07-10 00:30:31 +02:00
Riyyi 0c972f420c Util: Add get<T>() functionality with customization points to Value 2022-07-08 14:23:38 +02:00
Riyyi c5bbd7befd Util: Add exists() to Json::Value 2022-07-08 14:11:03 +02:00
Riyyi a209452a68 Util: Add Json::Value at() functions 2022-07-08 13:55:40 +02:00
Riyyi 4487c800df Util: Change Array constructor
std::vector supports both vector and initializer_list for construction.
2022-07-08 13:31:01 +02:00
Riyyi d9cfd3f7c1 Util: Forward declare Json::Value in Array and Object class 2022-07-08 13:29:23 +02:00
Riyyi 0465d5802a Util: Add size() getter to Json::Value 2022-07-07 09:47:34 +02:00
Riyyi 66774364fd Util: Forward declare Value in the Parser class 2022-07-06 10:51:27 +02:00
Riyyi 3078f62162 Util: Remove unneeded std::prev() use 2022-07-06 10:50:23 +02:00
Riyyi 8e92317f9e Util: Fix parsing solidus '/' 2022-07-06 10:23:43 +02:00
Riyyi c3d6af85ba Util: Rename Stringify -> Serializer 2022-07-04 17:04:16 +02:00
Riyyi 5d844554f5 Util: Fix Parser number error detection 2022-07-01 11:49:20 +02:00
Riyyi a3d1cd1d74 Util: Change Lexer line/column to 0-based 2022-07-01 11:43:15 +02:00
Riyyi ed5efdb0d6 Util: Remove unused function 2022-07-01 11:36:11 +02:00
Riyyi 4457a711cd Util: Remove debugging printf() statements 2022-07-01 11:32:26 +02:00
Riyyi 925fdd474a Util: Optimize m_index variable usage 2022-07-01 11:32:26 +02:00
Riyyi d65f56bf03 Util: Break Lexer strings on quote and new lines 2022-07-01 11:32:26 +02:00
Riyyi 4501061060 Util: Add string validation to Parser 2022-07-01 11:14:15 +02:00
Riyyi 0aef4ee2c0 Util: Only break Lexer string tokenization on unescaped " 2022-07-01 11:11:42 +02:00
Riyyi c1c9429a9d Util: Improve Lexer string tokenization 2022-06-30 20:46:11 +02:00
Riyyi 356cdaf051 Util: Add increment() and decrement() to Lexer 2022-06-30 20:46:11 +02:00
Riyyi b41bba72c9 Util: Rename Object key -> name 2022-06-30 20:46:08 +02:00
Riyyi a818c4489c Util: Add missing getter to Object 2022-06-30 20:45:33 +02:00
Riyyi 8800ff4f7a Util: Move literal validation logic to Parser 2022-06-30 20:45:33 +02:00
Riyyi 6161d577c6 Util: Change Object map unused value to uint8_t 2022-06-30 20:45:33 +02:00
Riyyi ddf0a2858b Util: Move number validation logic to Parser 2022-06-30 20:45:26 +02:00
Riyyi 8c08b8a594 Util: Add error report to Lexer default case 2022-06-29 14:14:09 +02:00
Riyyi 4a7ed92519 Util: Add constructor Value(Type) 2022-06-28 16:25:19 +02:00
Riyyi 95e0ddf49a Util: Fix return Value when an error has occurred 2022-06-28 16:24:13 +02:00
Riyyi fdeba07fd4 Util: Improve JSON parsing and add error messages 2022-06-28 16:24:13 +02:00
Riyyi a14cd1e0a5 Util: Change Parser switch cases to if-else 2022-06-28 16:11:33 +02:00
Riyyi 061ed74d4f Util: Check strings for double quotes in Lexer 2022-06-28 16:03:43 +02:00
Riyyi 8fb1a1a8e9 Util: Move vector<Token> ownership to Job class 2022-06-26 23:13:25 +02:00
Riyyi bc01b34e58 Util: Calculate JSON line number before lexing 2022-06-25 14:05:45 +02:00
Riyyi 68bc95fdf1 Util: Implement new JSON Job class 2022-06-24 14:56:37 +02:00
Riyyi 13d020a351 Util: Add JSON Job class
This class holds the to parse string and has a helper for printing error
messages.
2022-06-24 14:46:21 +02:00
Riyyi af678374bc Util: Add emplace() to Json::Value 2022-06-23 14:54:29 +02:00
Riyyi e5978310bf Util: Fix Parser Json::Value construction 2022-06-23 14:19:06 +02:00
Riyyi 8bfae9b483 Util: Add more ways of accessing and creating Json::Value objects 2022-06-23 13:47:07 +02:00
Riyyi 9f7fe81ef6 Util: Add parse() and dump() to Json::Value 2022-06-23 13:45:07 +02:00
Riyyi aad95de5fd Util: Add a JSON stringifier 2022-06-22 14:23:29 +02:00
Riyyi c385432bb0 Util: Add JSON accessors 2022-06-16 11:38:22 +02:00
Riyyi 5188d57d19 Util: Add JSON parser 2022-06-07 12:46:13 +02:00
Riyyi 0880d98fe0 Util: Add JSON Array/Object/Value types 2022-06-07 12:46:13 +02:00
Riyyi 1c676f9548 Util: Add JSON lexical analyzer 2022-06-07 12:46:13 +02:00
Riyyi cfe2987e50 Manager: Do not bail one of the targets requires root privileges 2022-03-23 23:17:50 +01:00
Riyyi 0e966a6408 Manager: Fix error message when copying files unprivileged 2022-03-23 23:16:25 +01:00
Riyyi 50baae0a66 Manager: Do not bail if one of the targets doesn't exist 2022-03-23 23:07:04 +01:00
Riyyi 4cac25b5b3 Manager: Change match() path argument type
Changed the path argument from directory_iterator to string, as nothing
in this function relied on the functionality.
2022-03-08 00:18:04 +01:00
Riyyi f4fe44ad02 Manager: Run clang-format 2022-03-08 00:07:54 +01:00
Riyyi db22cc9f06 Manager: Add new pattern logic to system config files 2022-03-08 00:06:01 +01:00
Riyyi 3b4ea3f42d Manager: Rename filter() -> match()
The function returns true on a pattern match, so reflect this in the
name.
2022-03-08 00:06:01 +01:00
Riyyi 37be9506c8 Manager: Rename pattern and iterator variables
ignorePattern -> pattern
ignoreIterator -> patternIterator
2022-03-08 00:06:01 +01:00
Riyyi ed13b1f6b5 Manager: Add new pattern logic to pulling/pushing targets 2022-03-08 00:05:54 +01:00
Riyyi 4110680cc6 Test: Run clang-format 2022-03-06 17:22:21 +01:00
Riyyi 6f1f1c3fe7 Everywhere: Rename "excludePath" to "ignorePattern" 2022-03-06 17:21:16 +01:00
Riyyi b37a8087e9 Everywhere: Change exclude path configuration formatting 2022-03-06 17:10:08 +01:00
Riyyi 4ff3092b2f Manager: Move the dotfile filter function 2022-03-06 16:38:42 +01:00
Riyyi 832816a87e Test: Add exclude path test cases for the new /.gitignore*/ logic 2022-03-06 16:35:57 +01:00
Riyyi 57d50a6dbb Test: Add argument to not delete test files in the home directory 2022-03-06 16:33:18 +01:00
Riyyi 7f1558bc64 Manager: Change exclude path logic to /.gitignore*/ style 2022-03-06 14:48:38 +01:00
Riyyi e00ff4ba6a Test: Change expect macros to support optional parameters 2022-03-05 17:19:25 +01:00
Riyyi 6a25f58be2 Meta: Update exclude paths list in the example 2022-03-03 00:38:09 +01:00
Riyyi 7cfe06e86e Doc: Add config file to exclude paths list 2022-03-03 00:36:27 +01:00
Riyyi fa1e0abc00 Test: Add test cases for symbolic link add/pull/push actions 2022-03-02 15:43:35 +01:00
Riyyi 3ed700863a Manager: Fix symbolic link pulling and pushing 2022-03-02 15:43:20 +01:00
Riyyi cf27699c00 Test: Also delete symbolic links that point to non-existent files 2022-03-01 22:38:46 +01:00
Riyyi 06042588ee Manager: Create directories for holding symlinks when pushing/pulling 2022-03-01 16:57:39 +01:00
Riyyi 59fe52202b Test: Update selectively commenting test to include C-style comments 2022-02-11 21:48:21 +01:00
Riyyi 8ccdd907fc Manager: Add support for C-style comments when pushing dotfiles 2022-02-11 21:41:17 +01:00
Riyyi 272c728e13 Manager: Use early-exit return style to decrease nesting 2022-02-10 14:15:57 +01:00
Riyyi b10711686f Manager: Remove unused variable 2022-02-10 14:11:59 +01:00
Riyyi dbf444ae48 Meta: Add exclude paths and system directories to README.org 2022-02-10 13:43:15 +01:00
Riyyi 5960549015 Meta: Update build requirements formatting in README.org 2022-02-10 00:02:33 +01:00
Riyyi 644255200e Meta+CMake: Convert JSON library from git submodule to system package 2022-02-09 23:57:38 +01:00
Riyyi 91df37328e Manager: Update headers 2022-02-09 23:00:05 +01:00