mirror of
https://github.com/akuker/RASCSI.git
synced 2024-06-01 19:41:48 +00:00
47282c43b9
* Extracted code * Initial support for (optional) recursive image file listings * Manpage update * Added support for image file filter * Updated filtering * Made image scan depth configurable * Code cleanup, initial support for creating nested file * Check for existing folder * Cleanup * Cleanup * Copy/rename/create * Updated delete operation * Delete empty folders * Code cleanup * Fixed typo * Check image file nesting level * Updated error handling * Fixed warning * Renaming * Error message update * Interface comment updates * Added depth to image info * Fixed scan depth check * Squashed commit of the following: commit94786aec54
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Tue Dec 21 08:43:21 2021 +0100 Added support for operation meta data, code cleanup (#534) * Added messages * Comment update * Interface update * Support for localized descriptions * Sort operations * Completed meta data * rasctl -s returns operation meta data * Manpage update * Type update * Comment update * Description updates * Comment update * Added convenience method * Added convenience method * Code cleanup * Comment update * Display permitted values * For completeness sake added permitted boolean values * Added support for default value * Removed redundant message field * Description update * Description upddate * Squashed commit of the following: commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:43:14 2021 +0100 The data type is implicit commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:37:49 2021 +0100 Renaming commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:29:54 2021 +0100 Comment update commit 5f699aad2f835f72accdb445d1e59f094aeb108f Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:24:25 2021 +0100 Signature update commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:22:45 2021 +0100 Signature update commit a8148ef802ca809e5a305d2caa69856c9033d932 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:16:46 2021 +0100 Comment update commit ce685a92d4827e131d80d10ecd56e2b3baf173f8 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:15:46 2021 +0100 Use map instead of list commit 454c0438f3589904f5dbe5253963dd200ea416dd Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 10:47:36 2021 +0100 Updated size check commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 01:23:43 2021 +0100 Initial improvements * Default value update * Comment update * Comment update * Map operations by ordinal * Added safeguard against unknown operations * Added cast * Data type update * Sort map by operation name * Renaming * Code cleanup * Comment update * Renaming * Comment update * Description updates * Fixed typo * Added operation * Logging update * Interface comment update * Fixed typo * Aded operation parameters * Updated handling of mandatory parameters * Updated assertion handling * Added missing condition * Removed duplicate cod3 * Code cleanup * Logging update * Removed duplicate code * Code cleanup * Squashed commit of the following: commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup * Shutdown functionality is only available if started with root permissions * Only restrict shutdown parameters, not everything if not root * Updated operation count check commit693ade2967
Author: Daniel Markstedt <markstedt@gmail.com> Date: Mon Dec 20 12:04:23 2021 -0800 Bump Macproxy version to 21.12.2 (#550) commit958fb95908
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Mon Dec 20 12:50:14 2021 -0600 Adjust bus settle delay to match SCSI standard (#544) * Move the GCC v10 compiler flags into makefile instead of easyinstall.sh * #504 - Update the bus settle time to match the SCSI standard Co-authored-by: RaSCSI User <user@rascsi.com> commit200bc7251f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Mon Dec 20 06:20:22 2021 -0800 More helpful error message when IP does not resolve for OLED screen (#541) * More helpful error message * Remove confusing fallback IP * Tweak message commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup commitec31198d83
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Sun Dec 19 11:54:10 2021 +0100 Optional authentication by access token (#529) * Added authentication by access token * No authentication is required for getting the rascsi version * Added comment * Interface description update * Manpage update * Added error code * Enum value update (backwards compatible) * Error code update * Error code update * Added CHECK_AUTHENTICATION * Comment update * VERSION_INFO also requires authentication * rasctl: Made token an optional parameter for -P * Fixed interface comment commite32211ef73
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Sun Dec 19 11:49:17 2021 +0100 Recursive image file scan and image file filter (#532) * Extracted code * Initial support for (optional) recursive image file listings * Manpage update * Added support for image file filter * Updated filtering * Made image scan depth configurable * Squashed commit of the following: commit192b14169f
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Tue Dec 21 09:19:05 2021 +0100 Meta data update commitb319d72601
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Tue Dec 21 09:02:39 2021 +0100 Squashed commit of the following: commit 0ab4918c5a59f978f48cf26f431ff809e9ddae33 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 16:52:03 2021 +0100 Scan depth determines availability of folder filter commit 16590cc4e4420a348fae610d749082c9d718be0a Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 15:47:08 2021 +0100 Updated operation count check commit 82f7c99755f535a7a5c30fe66e377705c5306faa Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 15:41:32 2021 +0100 Only restrict shutdown parameters, not everything if not root commit 9bd50d37b11c48b2130e4f6e66d12def88ddc38f Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 15:28:08 2021 +0100 Shutdown functionality is only available if started with root permissions commit aa5f3331abf4c178e8ce738c14fd584bd41d1b94 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 10:26:14 2021 +0100 Squashed commit of the following: commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup commit a1f4b28f92bd9f7cdba18c04f61d3721fc7c720f Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 21:50:15 2021 +0100 Comment update commit 9cbc06caf5f00ce85e0f7f984c871ed614e2e483 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 21:49:09 2021 +0100 Option update commit c4aa39c2285c5c72e2ea28ad749f5670dd10e89f Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 21:46:37 2021 +0100 Merged feature_folder_filter commitea386fc74c
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 19:05:07 2021 +0100 Code cleanup commit17c3201135
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 19:03:13 2021 +0100 Removed duplicate code commit296f816dd3
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 18:40:49 2021 +0100 Logging update commit73e0df8557
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 17:28:02 2021 +0100 Code cleanup commit405dbb034c
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 17:13:40 2021 +0100 Removed duplicate cod3 commitc7c168a942
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 17:08:02 2021 +0100 Added missing condition commit6af5394f78
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 16:16:12 2021 +0100 Updated assertion handling commit632fe1acd8
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 14:33:01 2021 +0100 Updated handling of mandatory parameters commita4e0d506c6
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 14:14:09 2021 +0100 Aded operation parameters commitfc783e6a43
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 12:38:35 2021 +0100 Fixed typo commitcb1b498459
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 12:37:13 2021 +0100 Interface comment update commite2d4347ce6
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 12:35:50 2021 +0100 Logging update commitcecb72df3e
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 12:13:44 2021 +0100 Added operation commitbbf153ccd6
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 12:09:49 2021 +0100 Fixed typo commit29fa5c2f96
Merge:28a36fa
ec31198
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 12:07:34 2021 +0100 Merge branch 'develop' into feature_meta_data commit28a36fa308
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 15:51:02 2021 +0100 Description updates commit73df9f136c
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 14:37:58 2021 +0100 Comment update commitc3ea3c8b37
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 14:34:48 2021 +0100 Renaming commit6a84edd0fb
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 14:22:31 2021 +0100 Comment update commitc0d6e66afe
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 14:20:20 2021 +0100 Code cleanup commitcc81b588eb
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 14:18:31 2021 +0100 Renaming commitc88628e12a
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 14:17:50 2021 +0100 Sort map by operation name commitb64001e8a4
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 13:39:44 2021 +0100 Data type update commit8177cd3062
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 13:37:23 2021 +0100 Added cast commitb8599ba088
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 13:35:40 2021 +0100 Added safeguard against unknown operations commit6b14ba6511
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 13:26:21 2021 +0100 Map operations by ordinal commitee101f2c6b
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 13:14:31 2021 +0100 Comment update commit67c958ed37
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 13:13:06 2021 +0100 Comment update commitd1a9c40745
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 13:04:58 2021 +0100 Default value update commitd9dbbc0bb3
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:47:36 2021 +0100 Squashed commit of the following: commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:43:14 2021 +0100 The data type is implicit commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:37:49 2021 +0100 Renaming commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:29:54 2021 +0100 Comment update commit 5f699aad2f835f72accdb445d1e59f094aeb108f Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:24:25 2021 +0100 Signature update commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:22:45 2021 +0100 Signature update commit a8148ef802ca809e5a305d2caa69856c9033d932 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:16:46 2021 +0100 Comment update commit ce685a92d4827e131d80d10ecd56e2b3baf173f8 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:15:46 2021 +0100 Use map instead of list commit 454c0438f3589904f5dbe5253963dd200ea416dd Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 10:47:36 2021 +0100 Updated size check commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 01:23:43 2021 +0100 Initial improvements commit5d6862b6b0
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 23:22:27 2021 +0100 Description upddate commit69263b3e4b
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 23:21:38 2021 +0100 Description update commit49e14f7078
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 23:19:08 2021 +0100 Removed redundant message field commitff468aafa8
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 23:09:18 2021 +0100 Added support for default value commit2da717a0a0
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 22:57:59 2021 +0100 For completeness sake added permitted boolean values commit5d894d2e4f
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 22:53:07 2021 +0100 Display permitted values commitacc7d3cba5
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 20:37:03 2021 +0100 Comment update commitf846242aea
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 20:35:07 2021 +0100 Code cleanup commit5a9592f102
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 20:24:33 2021 +0100 Added convenience method commit9d258d9979
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 20:05:53 2021 +0100 Added convenience method commit6c4103989b
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 19:45:20 2021 +0100 Comment update commit7d543451f0
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 19:27:50 2021 +0100 Description updates commitf4b0e50e66
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 19:23:29 2021 +0100 Comment update commit35dd3f6282
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 19:21:12 2021 +0100 Type update commit7a94c0e6e0
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 19:17:05 2021 +0100 Manpage update commit4179110bac
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 19:13:42 2021 +0100 rasctl -s returns operation meta data commiteed83bb005
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 19:05:29 2021 +0100 Completed meta data commit4a7528d9d3
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 18:39:18 2021 +0100 Sort operations commitd3af9a142c
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 18:29:22 2021 +0100 Support for localized descriptions commitb4ff4f52ab
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 17:53:11 2021 +0100 Interface update commite8d9e97fe5
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 16:59:49 2021 +0100 Comment update commit22753b1547
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Fri Dec 17 16:57:39 2021 +0100 Added messages commitb3a9292458
Merge:ea3bb83
94786ae
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Tue Dec 21 08:57:56 2021 +0100 Merge branch 'develop' into feature_folder_filter commitea3bb8363a
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Tue Dec 21 08:53:30 2021 +0100 Squashed commit of the following: commit94786aec54
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Tue Dec 21 08:43:21 2021 +0100 Added support for operation meta data, code cleanup (#534) * Added messages * Comment update * Interface update * Support for localized descriptions * Sort operations * Completed meta data * rasctl -s returns operation meta data * Manpage update * Type update * Comment update * Description updates * Comment update * Added convenience method * Added convenience method * Code cleanup * Comment update * Display permitted values * For completeness sake added permitted boolean values * Added support for default value * Removed redundant message field * Description update * Description upddate * Squashed commit of the following: commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:43:14 2021 +0100 The data type is implicit commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:37:49 2021 +0100 Renaming commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:29:54 2021 +0100 Comment update commit 5f699aad2f835f72accdb445d1e59f094aeb108f Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:24:25 2021 +0100 Signature update commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:22:45 2021 +0100 Signature update commit a8148ef802ca809e5a305d2caa69856c9033d932 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:16:46 2021 +0100 Comment update commit ce685a92d4827e131d80d10ecd56e2b3baf173f8 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:15:46 2021 +0100 Use map instead of list commit 454c0438f3589904f5dbe5253963dd200ea416dd Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 10:47:36 2021 +0100 Updated size check commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 01:23:43 2021 +0100 Initial improvements * Default value update * Comment update * Comment update * Map operations by ordinal * Added safeguard against unknown operations * Added cast * Data type update * Sort map by operation name * Renaming * Code cleanup * Comment update * Renaming * Comment update * Description updates * Fixed typo * Added operation * Logging update * Interface comment update * Fixed typo * Aded operation parameters * Updated handling of mandatory parameters * Updated assertion handling * Added missing condition * Removed duplicate cod3 * Code cleanup * Logging update * Removed duplicate code * Code cleanup * Squashed commit of the following: commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup * Shutdown functionality is only available if started with root permissions * Only restrict shutdown parameters, not everything if not root * Updated operation count check commit693ade2967
Author: Daniel Markstedt <markstedt@gmail.com> Date: Mon Dec 20 12:04:23 2021 -0800 Bump Macproxy version to 21.12.2 (#550) commit958fb95908
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Mon Dec 20 12:50:14 2021 -0600 Adjust bus settle delay to match SCSI standard (#544) * Move the GCC v10 compiler flags into makefile instead of easyinstall.sh * #504 - Update the bus settle time to match the SCSI standard Co-authored-by: RaSCSI User <user@rascsi.com> commit200bc7251f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Mon Dec 20 06:20:22 2021 -0800 More helpful error message when IP does not resolve for OLED screen (#541) * More helpful error message * Remove confusing fallback IP * Tweak message commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup commit94786aec54
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Tue Dec 21 08:43:21 2021 +0100 Added support for operation meta data, code cleanup (#534) * Added messages * Comment update * Interface update * Support for localized descriptions * Sort operations * Completed meta data * rasctl -s returns operation meta data * Manpage update * Type update * Comment update * Description updates * Comment update * Added convenience method * Added convenience method * Code cleanup * Comment update * Display permitted values * For completeness sake added permitted boolean values * Added support for default value * Removed redundant message field * Description update * Description upddate * Squashed commit of the following: commit 8171c6ea27982c736c30c0db69a7fdde07ee10ce Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:43:14 2021 +0100 The data type is implicit commit fb01dc9d82e8ff7456b05a0cb9d08069adacc64c Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:37:49 2021 +0100 Renaming commit 057dbf1aca7be3f7e76a5ff89a582a276b6d3089 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:29:54 2021 +0100 Comment update commit 5f699aad2f835f72accdb445d1e59f094aeb108f Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:24:25 2021 +0100 Signature update commit cbcf8b09f9d1ba7b82f816269bcfe91d9f00eb6e Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:22:45 2021 +0100 Signature update commit a8148ef802ca809e5a305d2caa69856c9033d932 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:16:46 2021 +0100 Comment update commit ce685a92d4827e131d80d10ecd56e2b3baf173f8 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 12:15:46 2021 +0100 Use map instead of list commit 454c0438f3589904f5dbe5253963dd200ea416dd Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 10:47:36 2021 +0100 Updated size check commit b386dbba4b0262f4f6f02aecb2a1daeffd41f4a2 Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sat Dec 18 01:23:43 2021 +0100 Initial improvements * Default value update * Comment update * Comment update * Map operations by ordinal * Added safeguard against unknown operations * Added cast * Data type update * Sort map by operation name * Renaming * Code cleanup * Comment update * Renaming * Comment update * Description updates * Fixed typo * Added operation * Logging update * Interface comment update * Fixed typo * Aded operation parameters * Updated handling of mandatory parameters * Updated assertion handling * Added missing condition * Removed duplicate cod3 * Code cleanup * Logging update * Removed duplicate code * Code cleanup * Squashed commit of the following: commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup * Shutdown functionality is only available if started with root permissions * Only restrict shutdown parameters, not everything if not root * Updated operation count check commit693ade2967
Author: Daniel Markstedt <markstedt@gmail.com> Date: Mon Dec 20 12:04:23 2021 -0800 Bump Macproxy version to 21.12.2 (#550) commit958fb95908
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Mon Dec 20 12:50:14 2021 -0600 Adjust bus settle delay to match SCSI standard (#544) * Move the GCC v10 compiler flags into makefile instead of easyinstall.sh * #504 - Update the bus settle time to match the SCSI standard Co-authored-by: RaSCSI User <user@rascsi.com> commit200bc7251f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Mon Dec 20 06:20:22 2021 -0800 More helpful error message when IP does not resolve for OLED screen (#541) * More helpful error message * Remove confusing fallback IP * Tweak message commitf59eeb842e
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 10:25:28 2021 +0100 Squashed commit of the following: commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup commit670356e0e2
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 20:26:03 2021 +0100 Code cleanup commit4fc8f67975
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 20:21:10 2021 +0100 Manpage update commit29603a327a
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Sun Dec 19 19:49:56 2021 +0100 Added optional folder name filter commitec31198d83
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Sun Dec 19 11:54:10 2021 +0100 Optional authentication by access token (#529) * Added authentication by access token * No authentication is required for getting the rascsi version * Added comment * Interface description update * Manpage update * Added error code * Enum value update (backwards compatible) * Error code update * Error code update * Added CHECK_AUTHENTICATION * Comment update * VERSION_INFO also requires authentication * rasctl: Made token an optional parameter for -P * Fixed interface comment commite32211ef73
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Sun Dec 19 11:49:17 2021 +0100 Recursive image file scan and image file filter (#532) * Extracted code * Initial support for (optional) recursive image file listings * Manpage update * Added support for image file filter * Updated filtering * Made image scan depth configurable * Interface update * Squashed commit of the following: commit6c98228726
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 22:45:24 2021 +0100 Fixed scan depth check commit87e8b3be6a
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 20:46:36 2021 +0100 Added depth to image info commit7c08fa6569
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 20:38:53 2021 +0100 Interface comment updates commit29d919d30e
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 20:06:02 2021 +0100 Error message update commitfe76a1a577
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 19:56:36 2021 +0100 Renaming commit412b53ddf1
Merge:bf9d906
958fb95
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 19:50:53 2021 +0100 Merge branch 'develop' into feature_file_operations_with_folders commit958fb95908
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Mon Dec 20 12:50:14 2021 -0600 Adjust bus settle delay to match SCSI standard (#544) * Move the GCC v10 compiler flags into makefile instead of easyinstall.sh * #504 - Update the bus settle time to match the SCSI standard Co-authored-by: RaSCSI User <user@rascsi.com> commitbf9d90664c
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 19:42:36 2021 +0100 Fixed warning commit362a90f3dc
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 19:37:32 2021 +0100 Updated error handling commit66c380bd97
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 19:33:01 2021 +0100 Check image file nesting level commitc98a2b9069
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 19:06:18 2021 +0100 Fixed typo commita36dabc002
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 19:03:18 2021 +0100 Code cleanup commit46fc22f72a
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 18:58:27 2021 +0100 Delete empty folders commitd55bf3e06f
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 18:33:59 2021 +0100 Updated delete operation commit5afce5f50f
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 18:31:55 2021 +0100 Copy/rename/create commitb969d3990a
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 15:21:17 2021 +0100 Cleanup commit200bc7251f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Mon Dec 20 06:20:22 2021 -0800 More helpful error message when IP does not resolve for OLED screen (#541) * More helpful error message * Remove confusing fallback IP * Tweak message commit6a6efa6bdd
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 12:58:29 2021 +0100 Cleanup commit72ab669158
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 12:58:03 2021 +0100 Check for existing folder commit6a9ac4d0da
Author: Uwe Seimet <Uwe.Seimet@seimet.de> Date: Mon Dec 20 12:52:26 2021 +0100 Code cleanup, initial support for creating nested file commit4ae273ccbd
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:30:22 2021 -0600 Loopback tester pcb (#545) commit46c5c1966f
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 22:29:59 2021 -0600 RaSCSI Zero version 1.0 (#546) commitd09df31d67
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 20:25:23 2021 -0800 Remove redundant code from OLED script (#547) commitd8828da690
Author: akuker <34318535+akuker@users.noreply.github.com> Date: Sun Dec 19 21:02:50 2021 -0600 Added list of sponsors commitbcd7e8396d
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:51:45 2021 -0800 Second attempt at properly creating the manpage dir (#542) commitc887edfc8c
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:50:03 2021 -0800 Remove special elevated privileges for the Web Interface (#536) * Use the pi_shutdown method to restart the rascsi service * Use the pi_shutdown method to restart the rascsi service * Remove modifications to sudoers no longer needed * Introduce sleeps attempting to connect to socket; reduce overall number of retries * Remove systemd helped methods and the functionality that depends on it * Attempts to speed up splash code * Remove unneccessary verbosity * Attempt to optimize service definition commit801aebfb96
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:22 2021 -0800 More readable message when downloading a file (#531) commit29cf58288f
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:47:03 2021 -0800 Add a warning notice when ejecting removable media (#526) commit7efa895239
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:46:22 2021 -0800 Unzip zipfiles before storing to iso (#525) * Unzip zipfiles before storing to iso * Add helptext * Skip unzip for MacZip format * Should not be an fstring commit39bc485671
Author: Daniel Markstedt <markstedt@gmail.com> Date: Sun Dec 19 15:28:22 2021 -0800 Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523) * Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies * Cleanup commitec31198d83
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Sun Dec 19 11:54:10 2021 +0100 Optional authentication by access token (#529) * Added authentication by access token * No authentication is required for getting the rascsi version * Added comment * Interface description update * Manpage update * Added error code * Enum value update (backwards compatible) * Error code update * Error code update * Added CHECK_AUTHENTICATION * Comment update * VERSION_INFO also requires authentication * rasctl: Made token an optional parameter for -P * Fixed interface comment commite32211ef73
Author: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Sun Dec 19 11:49:17 2021 +0100 Recursive image file scan and image file filter (#532) * Extracted code * Initial support for (optional) recursive image file listings * Manpage update * Added support for image file filter * Updated filtering * Made image scan depth configurable * Code cleanup * Resolved merged issues * Fixed merge issue * Comment update * Message update * Fixed typo * Logging update * Logging update * Logging update * Fixed merge issue * Set pattern param for SERVER_INFO * Added missing break * Updated error handling * Logging update * Error message update * Removed initial approach for localization in remote interface * Added command context * Initialize context * Initial localization support class * Localized authentication error * Comment update * Added TODO * Merge with develop * Only localize remote interface errors, but not log messages * Removed TODO * Use enum as localization key * Added consistency checks * Updated consitency checks * Fixed initial entries * Added fallback * Locales are always treated lower case * Support for string parameters * Added convenience method * Added localization support to rasctl * Error message update * Error handling update * Error handling update * Concatenate strings instead of using stream for error messages * Error message handling update * Error handling update * Comment update * Removed obsolete method * Logging update * Code cleanup * Added assertions * Code cleanup * Updated empty string handling * Code cleanup * Added localized messages * Added error messages * Added more error messages * Fixed typo * Translation update * Translation update * Uodated default locale handling * Updated locale handling * Manpage update * Removed debug code * Added translations * Added translations * Add Swedish localization * Swedish fix * Added -z option to rascsi * Manpage update Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
407 lines
12 KiB
C++
407 lines
12 KiB
C++
//---------------------------------------------------------------------------
|
|
//
|
|
// SCSI Target Emulator RaSCSI (*^..^*)
|
|
// for Raspberry Pi
|
|
//
|
|
// Copyright (C) 2021 Uwe Seimet
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
#include <unistd.h>
|
|
#include <sys/sendfile.h>
|
|
#include "os.h"
|
|
#include "log.h"
|
|
#include "filepath.h"
|
|
#include "spdlog/spdlog.h"
|
|
#include "devices/file_support.h"
|
|
#include "protobuf_util.h"
|
|
#include "rascsi_image.h"
|
|
#include <string>
|
|
#include <filesystem>
|
|
|
|
using namespace std;
|
|
using namespace spdlog;
|
|
using namespace rascsi_interface;
|
|
using namespace protobuf_util;
|
|
|
|
#define FPRT(fp, ...) fprintf(fp, __VA_ARGS__ )
|
|
|
|
RascsiImage::RascsiImage()
|
|
{
|
|
// ~/images is the default folder for device image files, for the root user it is /home/pi/images
|
|
int uid = getuid();
|
|
const char *sudo_user = getenv("SUDO_UID");
|
|
if (sudo_user) {
|
|
uid = stoi(sudo_user);
|
|
}
|
|
|
|
const passwd *passwd = getpwuid(uid);
|
|
if (uid && passwd) {
|
|
default_image_folder = passwd->pw_dir;
|
|
default_image_folder += "/images";
|
|
}
|
|
else {
|
|
default_image_folder = "/home/pi/images";
|
|
}
|
|
|
|
depth = 1;
|
|
}
|
|
|
|
bool RascsiImage::CheckDepth(const string& filename)
|
|
{
|
|
return count(filename.begin(), filename.end(), '/') <= depth;
|
|
}
|
|
|
|
bool RascsiImage::CreateImageFolder(const CommandContext& context, const string& filename)
|
|
{
|
|
size_t filename_start = filename.rfind('/');
|
|
if (filename_start != string::npos) {
|
|
string folder = filename.substr(0, filename_start);
|
|
|
|
// Checking for existence first prevents an error if the top-level folder is a softlink
|
|
struct stat st;
|
|
if (stat(folder.c_str(), &st)) {
|
|
std::error_code error;
|
|
filesystem::create_directories(folder, error);
|
|
if (error) {
|
|
ReturnStatus(context, false, "Can't create image folder '" + folder + "': " + strerror(errno));
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
string RascsiImage::SetDefaultImageFolder(const string& f)
|
|
{
|
|
if (f.empty()) {
|
|
return "Can't set default image folder: Missing folder name";
|
|
}
|
|
|
|
string folder = f;
|
|
|
|
// If a relative path is specified the path is assumed to be relative to the user's home directory
|
|
if (folder[0] != '/') {
|
|
int uid = getuid();
|
|
const char *sudo_user = getenv("SUDO_UID");
|
|
if (sudo_user) {
|
|
uid = stoi(sudo_user);
|
|
}
|
|
|
|
const passwd *passwd = getpwuid(uid);
|
|
if (passwd) {
|
|
folder = passwd->pw_dir;
|
|
folder += "/";
|
|
folder += f;
|
|
}
|
|
}
|
|
else {
|
|
if (folder.find("/home/") != 0) {
|
|
return "Default image folder must be located in '/home/'";
|
|
}
|
|
}
|
|
|
|
struct stat info;
|
|
stat(folder.c_str(), &info);
|
|
if (!S_ISDIR(info.st_mode) || access(folder.c_str(), F_OK) == -1) {
|
|
return "Folder '" + f + "' does not exist or is not accessible";
|
|
}
|
|
|
|
default_image_folder = folder;
|
|
|
|
LOGINFO("Default image folder set to '%s'", default_image_folder.c_str());
|
|
|
|
return "";
|
|
}
|
|
|
|
bool RascsiImage::IsValidSrcFilename(const string& filename)
|
|
{
|
|
// Source file must exist and must be a regular file or a symlink
|
|
struct stat st;
|
|
return !stat(filename.c_str(), &st) && (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode));
|
|
}
|
|
|
|
bool RascsiImage::IsValidDstFilename(const string& filename)
|
|
{
|
|
// Destination file must not yet exist
|
|
struct stat st;
|
|
return stat(filename.c_str(), &st);
|
|
}
|
|
|
|
bool RascsiImage::CreateImage(const CommandContext& context, const PbCommand& command)
|
|
{
|
|
string filename = GetParam(command, "file");
|
|
if (filename.empty()) {
|
|
return ReturnStatus(context, false, "Can't create image file: Missing image filename");
|
|
}
|
|
|
|
if (!CheckDepth(filename)) {
|
|
return ReturnStatus(context, false, ("Invalid folder hierarchy depth '" + filename + "'").c_str());
|
|
}
|
|
|
|
string full_filename = default_image_folder + "/" + filename;
|
|
if (!IsValidDstFilename(full_filename)) {
|
|
return ReturnStatus(context, false, "Can't create image file: '" + full_filename + "': File already exists");
|
|
}
|
|
|
|
const string size = GetParam(command, "size");
|
|
if (size.empty()) {
|
|
return ReturnStatus(context, false, "Can't create image file '" + full_filename + "': Missing image size");
|
|
}
|
|
|
|
off_t len;
|
|
try {
|
|
len = stoull(size);
|
|
}
|
|
catch(const invalid_argument& e) {
|
|
return ReturnStatus(context, false, "Can't create image file '" + full_filename + "': Invalid file size " + size);
|
|
}
|
|
catch(const out_of_range& e) {
|
|
return ReturnStatus(context, false, "Can't create image file '" + full_filename + "': Invalid file size " + size);
|
|
}
|
|
if (len < 512 || (len & 0x1ff)) {
|
|
return ReturnStatus(context, false, "Invalid image file size " + to_string(len) + " (not a multiple of 512)");
|
|
}
|
|
|
|
if (!CreateImageFolder(context, full_filename)) {
|
|
return false;
|
|
}
|
|
|
|
string permission = GetParam(command, "read_only");
|
|
// Since rascsi is running as root ensure that others can access the file
|
|
int permissions = !strcasecmp(permission.c_str(), "true") ?
|
|
S_IRUSR | S_IRGRP | S_IROTH : S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
|
|
|
int image_fd = open(full_filename.c_str(), O_CREAT|O_WRONLY, permissions);
|
|
if (image_fd == -1) {
|
|
return ReturnStatus(context, false, "Can't create image file '" + full_filename + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
if (fallocate(image_fd, 0, 0, len)) {
|
|
close(image_fd);
|
|
|
|
unlink(full_filename.c_str());
|
|
|
|
return ReturnStatus(context, false, "Can't allocate space for image file '" + full_filename + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
close(image_fd);
|
|
|
|
LOGINFO("%s", string("Created " + string(permissions & S_IWUSR ? "": "read-only ") + "image file '" + full_filename +
|
|
"' with a size of " + to_string(len) + " bytes").c_str());
|
|
|
|
return ReturnStatus(context);
|
|
}
|
|
|
|
bool RascsiImage::DeleteImage(const CommandContext& context, const PbCommand& command)
|
|
{
|
|
string filename = GetParam(command, "file");
|
|
if (filename.empty()) {
|
|
return ReturnStatus(context, false, "Missing image filename");
|
|
}
|
|
|
|
if (!CheckDepth(filename)) {
|
|
return ReturnStatus(context, false, ("Invalid folder hierarchy depth '" + filename + "'").c_str());
|
|
}
|
|
|
|
string full_filename = default_image_folder + "/" + filename;
|
|
|
|
int id;
|
|
int unit;
|
|
Filepath filepath;
|
|
filepath.SetPath(full_filename.c_str());
|
|
if (FileSupport::GetIdsForReservedFile(filepath, id, unit)) {
|
|
return ReturnStatus(context, false, "Can't delete image file '" + full_filename +
|
|
"', it is currently being used by device ID " + to_string(id) + ", unit " + to_string(unit));
|
|
}
|
|
|
|
if (remove(full_filename.c_str())) {
|
|
return ReturnStatus(context, false, "Can't delete image file '" + full_filename + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
// Delete empty subfolders
|
|
size_t last_slash = filename.rfind('/');
|
|
while (last_slash != string::npos) {
|
|
string folder = filename.substr(0, last_slash);
|
|
string full_folder = default_image_folder + "/" + folder;
|
|
|
|
std::error_code error;
|
|
if (!filesystem::is_empty(full_folder, error) || error) {
|
|
break;
|
|
}
|
|
|
|
if (remove(full_folder.c_str())) {
|
|
return ReturnStatus(context, false, "Can't delete empty image folder '" + full_folder + "'");
|
|
}
|
|
|
|
last_slash = folder.rfind('/');
|
|
}
|
|
|
|
LOGINFO("Deleted image file '%s'", full_filename.c_str());
|
|
|
|
return ReturnStatus(context);
|
|
}
|
|
|
|
bool RascsiImage::RenameImage(const CommandContext& context, const PbCommand& command)
|
|
{
|
|
string from = GetParam(command, "from");
|
|
if (from.empty()) {
|
|
return ReturnStatus(context, false, "Can't rename/move image file: Missing source filename");
|
|
}
|
|
|
|
if (!CheckDepth(from)) {
|
|
return ReturnStatus(context, false, ("Invalid folder hierarchy depth '" + from + "'").c_str());
|
|
}
|
|
|
|
from = default_image_folder + "/" + from;
|
|
if (!IsValidSrcFilename(from)) {
|
|
return ReturnStatus(context, false, "Can't rename/move image file: '" + from + "': Invalid name or type");
|
|
}
|
|
|
|
string to = GetParam(command, "to");
|
|
if (to.empty()) {
|
|
return ReturnStatus(context, false, "Can't rename/move image file '" + from + "': Missing destination filename");
|
|
}
|
|
|
|
if (!CheckDepth(to)) {
|
|
return ReturnStatus(context, false, ("Invalid folder hierarchy depth '" + to + "'").c_str());
|
|
}
|
|
|
|
to = default_image_folder + "/" + to;
|
|
if (!IsValidDstFilename(to)) {
|
|
return ReturnStatus(context, false, "Can't rename/move image file '" + from + "' to '" + to + "': File already exists");
|
|
}
|
|
|
|
if (!CreateImageFolder(context, to)) {
|
|
return false;
|
|
}
|
|
|
|
if (rename(from.c_str(), to.c_str())) {
|
|
return ReturnStatus(context, false, "Can't rename/move image file '" + from + "' to '" + to + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
LOGINFO("Renamed/Moved image file '%s' to '%s'", from.c_str(), to.c_str());
|
|
|
|
return ReturnStatus(context);
|
|
}
|
|
|
|
bool RascsiImage::CopyImage(const CommandContext& context, const PbCommand& command)
|
|
{
|
|
string from = GetParam(command, "from");
|
|
if (from.empty()) {
|
|
return ReturnStatus(context, false, "Can't copy image file: Missing source filename");
|
|
}
|
|
|
|
if (!CheckDepth(from)) {
|
|
return ReturnStatus(context, false, ("Invalid folder hierarchy depth '" + from + "'").c_str());
|
|
}
|
|
|
|
from = default_image_folder + "/" + from;
|
|
if (!IsValidSrcFilename(from)) {
|
|
return ReturnStatus(context, false, "Can't copy image file: '" + from + "': Invalid name or type");
|
|
}
|
|
|
|
string to = GetParam(command, "to");
|
|
if (to.empty()) {
|
|
return ReturnStatus(context, false, "Can't copy image file '" + from + "': Missing destination filename");
|
|
}
|
|
|
|
if (!CheckDepth(to)) {
|
|
return ReturnStatus(context, false, ("Invalid folder hierarchy depth '" + to + "'").c_str());
|
|
}
|
|
|
|
to = default_image_folder + "/" + to;
|
|
if (!IsValidDstFilename(to)) {
|
|
return ReturnStatus(context, false, "Can't copy image file '" + from + "' to '" + to + "': File already exists");
|
|
}
|
|
|
|
struct stat st;
|
|
if (lstat(from.c_str(), &st)) {
|
|
return ReturnStatus(context, false, "Can't access source image file '" + from + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
if (!CreateImageFolder(context, to)) {
|
|
return false;
|
|
}
|
|
|
|
// Symbolic links need a special handling
|
|
if ((st.st_mode & S_IFMT) == S_IFLNK) {
|
|
if (symlink(filesystem::read_symlink(from).c_str(), to.c_str())) {
|
|
return ReturnStatus(context, false, "Can't copy symlink '" + from + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
LOGINFO("Copied symlink '%s' to '%s'", from.c_str(), to.c_str());
|
|
|
|
return ReturnStatus(context);
|
|
}
|
|
|
|
int fd_src = open(from.c_str(), O_RDONLY, 0);
|
|
if (fd_src == -1) {
|
|
return ReturnStatus(context, false, "Can't open source image file '" + from + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
string permission = GetParam(command, "read_only");
|
|
// Since rascsi is running as root ensure that others can access the file
|
|
int permissions = !strcasecmp(permission.c_str(), "true") ?
|
|
S_IRUSR | S_IRGRP | S_IROTH : S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
|
|
|
int fd_dst = open(to.c_str(), O_WRONLY | O_CREAT, permissions);
|
|
if (fd_dst == -1) {
|
|
close(fd_src);
|
|
|
|
return ReturnStatus(context, false, "Can't open destination image file '" + to + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
if (sendfile(fd_dst, fd_src, 0, st.st_size) == -1) {
|
|
close(fd_dst);
|
|
close(fd_src);
|
|
|
|
unlink(to.c_str());
|
|
|
|
return ReturnStatus(context, false, "Can't copy image file '" + from + "' to '" + to + "': " + string(strerror(errno)));
|
|
}
|
|
|
|
close(fd_dst);
|
|
close(fd_src);
|
|
|
|
LOGINFO("Copied image file '%s' to '%s'", from.c_str(), to.c_str());
|
|
|
|
return ReturnStatus(context);
|
|
}
|
|
|
|
bool RascsiImage::SetImagePermissions(const CommandContext& context, const PbCommand& command)
|
|
{
|
|
string filename = GetParam(command, "file");
|
|
if (filename.empty()) {
|
|
return ReturnStatus(context, false, "Missing image filename");
|
|
}
|
|
|
|
if (!CheckDepth(filename)) {
|
|
return ReturnStatus(context, false, ("Invalid folder hierarchy depth '" + filename + "'").c_str());
|
|
}
|
|
|
|
filename = default_image_folder + "/" + filename;
|
|
if (!IsValidSrcFilename(filename)) {
|
|
return ReturnStatus(context, false, "Can't modify image file '" + filename + "': Invalid name or type");
|
|
}
|
|
|
|
bool protect = command.operation() == PROTECT_IMAGE;
|
|
|
|
int permissions = protect ? S_IRUSR | S_IRGRP | S_IROTH : S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
|
|
|
if (chmod(filename.c_str(), permissions) == -1) {
|
|
return ReturnStatus(context, false, "Can't " + string(protect ? "protect" : "unprotect") + " image file '" + filename + "': " +
|
|
strerror(errno));
|
|
}
|
|
|
|
if (protect) {
|
|
LOGINFO("Protected image file '%s'", filename.c_str());
|
|
}
|
|
else {
|
|
LOGINFO("Unprotected image file '%s'", filename.c_str());
|
|
}
|
|
|
|
return ReturnStatus(context);
|
|
}
|