Commit Graph

69 Commits

Author SHA1 Message Date
Benjamin Zeiss 0297fe856a
8bit encoder detection + debounced button detection, numpy removal (#710)
* debounce interrupt events for rotary events and button presses with 400 microseconds by default.

* Massive improvements for the encoder detection. Removed numpy as a dependency.

* Debounce button presses which started to jump around.

* formatting cleanup.
2022-03-01 20:27:14 -06:00
Benjamin Zeiss 4178d4b845
Small installation fixes when upgrading an existing device. (#707) 2022-02-25 17:42:56 -08:00
Benjamin Zeiss cd0da558c3
Initial version of the Control Board UI (#687)
Initial version of the Control Board UI (#687)
2022-02-25 21:03:36 +01:00
Daniel Markstedt 46d23a0d5d
Proper cleanup of old python protobuf libraries. (#667) 2022-02-14 15:30:33 -08:00
Daniel Markstedt afb23586d0
Fix typo in the Netatalk install script (#643) 2022-02-06 10:30:06 +01:00
Daniel Markstedt 38f8191a45
Try to prevent frequent sudo timeout after compiling rascsi (#636)
* Try to prevent frequent sudo timeout after compiling rascsi

* Fix typo
2022-02-03 19:40:15 -06:00
Daniel Markstedt 7c1020a40b
Use Netatalk 2.x v220101 (#631)
* Use Netatalk 2.x v220101

* Correct removal of existing copy

* Add missing libavahi-client-dev

* Improve cleanup of previous Netatalk installation

* Print out systemd status after starting the services

* Add CUPS installation
2022-02-03 19:39:25 -06:00
Benjamin Zeiss ffb0aa61b4
fix for #621. (#624) 2022-01-29 11:06:10 -08:00
Benjamin Zeiss 089dc302e5
restructuring towards python client library #455 (#613)
* python client library clean branch for PR. #455

* removed superfluous file. #455

* removed one more superfluous file. #455

* README.md, .pylintrc and pylint based fixes. #455

* updated wrt. to the review comments. #455

* removed pylint documentation duplication. #455
2022-01-21 15:08:29 -08:00
Benjamin Zeiss 03e7007d3a
Missing oled systemd file caused the service installed/running detection to fail. (#612) 2022-01-16 21:11:21 -08:00
Benjamin Zeiss 17497cf1fe clean squashed restructuring branch. #455 2022-01-09 20:22:19 +01:00
Daniel Markstedt 5befff28e6
Improve token auth and oled monitor install scripts; better venv cleanup logic (#587)
* Trigger installation of the oled monitor script after installing rascsi; break out the token auth code and clarify wordings.

* Better logic for venv cleanup
2022-01-01 11:38:10 -06:00
Daniel Markstedt 3af3f3e2de
Bump macproxy version to 21.12.3 (#586) 2021-12-31 22:07:17 -06:00
Daniel Markstedt ab55d95fd4
Add token authentication to Web UI and OLED monitor script (#554)
* Throw 403 forbidden if token auth is enabled

* Use argparse to parse port and password parameters; use password token to authenticate

* Move config file loading to before_first_request block

* Add token auth to monitor script

* Install script for enabling token auth

* Token config flow for oled monitor installation

* Correct permissions

* Fix bug

* Cleanup
2021-12-23 11:12:16 -06:00
Daniel Markstedt 5817ca6df5
Skip git steps in shell scripts if not a valid git repo (#524)
* Skip git steps if no .git dir exists

* Tweak message

* Check for git repo in start.sh

* Fix logic & cleanup

* Make a different check for git repo

* Make a different check for git repo

* Make a different check for git repo
2021-12-23 11:08:50 -06:00
Daniel Markstedt 693ade2967
Bump Macproxy version to 21.12.2 (#550) 2021-12-20 21:04:23 +01:00
akuker 958fb95908
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>
2021-12-20 19:50:14 +01:00
Daniel Markstedt c887edfc8c
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
2021-12-19 17:50:03 -06:00
Daniel Markstedt 39bc485671
Add pip3 to global dependencies; remove duplicates from monitor_rascs… (#523)
* Add pip3 to global dependencies; remove duplicates from monitor_rascsi dependencies

* Cleanup
2021-12-19 17:28:22 -06:00
Daniel Markstedt 8f1cc95195
Small fixes for HFS formatted drive creation in easyinstall (#511)
* More descriptive messages for creating drive images

* Revert back to using hda file extension for created drives
2021-12-08 17:59:17 -06:00
Daniel Markstedt 824a9c5ecd
Bump to Macproxy release 21.12.1 (#509)
* Bump Macproxy version to 21.12.1

* Add functions for starting and stopping macproxy service; rename start script

* Remove superfluous step

* Fix bugs
2021-12-06 20:41:46 -06:00
Daniel Markstedt 47717ad0e0
Check for iptables, and install if missing (#506) 2021-12-04 20:07:17 +01:00
Daniel Markstedt 267625d1e8
Handle corner case scenarios in easyinstall when compilation of rascsi failed (#502)
* Backup rascsi.service AFTER compilation to avoid disabling the service when compilation fails

* Rename constant to match naming convention

* Introduce SYSTEMD_PATH global constant

* Rename constant to match naming convention

* Change method of checking for existing systemd services, to handle a corner case scenario where the service previously existed but the .service file had been removed unexpectedly
2021-12-02 19:18:45 -06:00
Daniel Markstedt d4f30a4e34
Remove DSPDLOG_FMT_EXTERNAL from gcc 10+ compiler flags, since it caused errors on 64-bit systems, and it seems to work without it on 32-bit systems. (#501) 2021-12-01 10:16:59 +01:00
akuker a24a07508e
Updated message in easyinstall (#486) 2021-11-26 20:49:45 -08:00
Daniel Markstedt 5346d110a9
User authentication in the Web Interface (#483)
* Add flask-login library

* Add simplepam lib to requirements

* We don't use flask-login after all

* User authentication in the web app using simplepam

* Allow only users in the sudo group to log in

* Tweak string

* This way to enforce authenticated state doesn't work here

* Open links to github in new tab

* Disallow uploads when not authenticated

* Check for the rascsi group on the system to enable webapp auth. Allow only users in the rascsi group to authenticate.

* Make the AUTH_GROUP a global constant.

* Add easyinstall option for web interface auth

* Make AUTH_GROUP a constant

* More accurate change scope
2021-11-26 22:41:10 -06:00
Daniel Markstedt ba7647da12
Introduce easyinstall options for installing stand-alone rascsi (#472)
* Introduce advanced options for installing stand-alone rascsi and rascsi-web

* Add usage notes message after configuration

* Adds code comments

* Separate function for managing the cfg dir

* Add code comments

* Update easyinstall.sh

* Add sudoCheck function to prompt for user password with a contextual message, and error out when not in sudoers group

* Up-front messages on the changes that will be made to the system

* Web service message

* Message about manpage installs

* One more manpage notice

* Update manpage targets

* Use a more sturdy parameter expansion syntax

* Use a more sturdy parameter expansion syntax
2021-11-18 20:17:24 -06:00
Daniel Markstedt 95808aca6b
Add check for root user to easyinstall + other fixes (#466)
* Add check for root user

* Avoid dirty rascsi.service files when easyinstall fails unexpectedly

* Clean up the use of sudo
2021-11-14 13:57:38 -06:00
Daniel Markstedt e1a4a963ed
Updates for running on Bullseye (#469)
* Conditionally use compiler flags needed for gcc 10+

* Cleanup

* Remove deprecated systemd options

* Better message
2021-11-14 19:34:24 +01:00
Daniel Markstedt df361f70d9
Make number of cores used for compilation a command line option for easyinstall.sh (#465) 2021-11-14 10:42:34 +01:00
Daniel Markstedt 133eab068c
Use the 21.11 release tarball for Macproxy; allow you to specify port number (#450)
* Tweak UI strings

* Pull a stable macproxy release tarball

* Add option to customize port
2021-11-13 19:45:40 -06:00
Daniel Markstedt 61c4534eab
Add support for 64px OLED screen height (#448)
* Add support for 64px screen height

* Handle case when only one argument is passed

* Simplify arg parsing

* Update install script to handle screen height selection

* Cleanup

* Update README

* Add blurb on running start.sh standalone

* Format

* Global constant for LINE_SPACING

* Make FONT_SIZE a global constant; improve code comments
2021-11-13 19:40:49 -06:00
Uwe Seimet 492c7331cf
Feature parallel make, -j $(nproc) (#446)
* Use make $(nproc)

* Fixed option
2021-11-09 18:20:55 -08:00
Daniel Markstedt 8aa7ab5401
Install script for macproxy + cleanup (#430)
* Script for installing macproxy

* Fix errors

* Add friendly message after installing

* Improve labels and remove scsi id reservation
2021-11-08 20:58:30 -06:00
Daniel Markstedt 988a2ffe1a
Make rascsi, rascsi-web and easyinstall.sh portable (#426)
* Make install script portable

* Modify rascsi-web service to accommodate portability

* Remove initialChecks call

* Introduce USER global variable

* Make the web app portable

* Make netatalk installation script portable

* Cleanup

* Cleanup

* Configure default image dir in rascsi.service
2021-11-08 20:33:33 -06:00
Daniel Markstedt bd52da7ebd
Do not save a new tarball every time you install netatalk (#414) 2021-11-02 20:22:36 -05:00
Daniel Markstedt 3e769de373 Add raspi-config to required packages 2021-10-28 12:12:13 -07:00
Daniel Markstedt fea1c150f3 Cleanup 2021-10-28 11:17:33 -07:00
Daniel Markstedt 2044c5e0d1 Cleanup 2021-10-28 11:16:48 -07:00
Daniel Markstedt 967fbd2999 Use raspi-config to manage the boot config 2021-10-28 11:15:16 -07:00
Daniel Markstedt 192bbb6391 Add checks for running services before stopping + stop&start monitor_rascsi when installing rascsi proper 2021-10-20 22:06:00 -07:00
Daniel Markstedt 269b718ec7
Configurable OLED screen rotation (#359)
* Read rotation from the 1st command line arg

* Configure screen rotation during installation

* Better argument validation + use human readable arguments

* Cleanup
2021-10-20 21:33:06 -05:00
Daniel Markstedt 7ce84aac6c
Script for installing OLED Screen software (#348)
* Script for installing OLED Screen software

* Reboot is required

* Compile protobuf lib

* Reboot only when kernel config has changed
2021-10-19 22:16:11 -05:00
Daniel Markstedt 542f9b6905
Script for installing Netatalk (#336)
* Script for installing Netatalk

* Fix errors

* Tweak labels

* Improve script

* Fix error

* Fix error

* Fix error

* Fix errors

* Fix errors

* Add message

* Clean up old config files

* Cleanup

* Fix errors

* Cleanup

* Avoid erroring out of script

* Improve help text

* Improve help text

* Flesh out help text

* Improve help text
2021-10-17 18:31:17 -07:00
Daniel Markstedt 34f5bc99b7
Easyinstall fixups (#305)
* Fix minor errors in easyinstall.sh and start.sh

* Make easyinstall directory portable

* Make RASCSI-web directory portable in easyinstall.sh

* Remove directory check from easyinstall.sh

* Fix failed merge

* Fix copy of web files

* Fix VIRTUAL_DRIVER_PATH

* Revert to fixed checkout dir

* Simplify rascsi-web.service installation

* Fix bugs

* Better iptables-persistent check

* Revert line commented out for testing

* Fix unintentional indentation

* Add check for the existance of a remote branch

* Add echo message when detecing local branch

* Fallback name and email for git stash command

* Add quotation marks

* Add set -x for testing

* Avoid script to exit out when sudoIsReady check fails

* Tweak conditional check

* Pass argument with -S

* Options for testing

* Testing

* Testing

* Reset stdin for suspicious actions

* Reset stdin for suspicious actions

* Testing

* Testing

* Stop testing

Co-authored-by: Jonathan karras <karrots@users.noreply.github.com>
2021-10-13 20:01:13 -05:00
Jonathan Karras 5bd8807c9e
Fix script errors in easyinstall.sh (#297)
* Fix minor errors in easyinstall.sh and start.sh

* Make easyinstall directory portable

* Remove directory check from easyinstall.sh

* Revert to requiring the checkout dir to be /home/pi/RASCSI

Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
2021-10-07 18:00:49 -07:00
Daniel Markstedt 7717890b5f
Feature config dir (#299)
* Define a separate config directory

* Create config dir when installing

* Fix typo

* Introduce delete_file method for deleting non-image files

* Add docstring
2021-10-05 20:58:49 -05:00
Daniel Markstedt 7e456b76bf
Back up rascsi.service before installing new one (#273)
* Back up rascsi.service before installing new one

* Error out on errors

* Extra notification to user that rascsi.service has been overwritten
2021-09-28 10:56:14 -07:00
Daniel Markstedt 04ee2cf8d6 Reserve no ids with no inpu 2021-09-24 12:49:02 -07:00
Daniel Markstedt 54219f66d4 Update easyinstall.sh script 2021-09-19 17:11:38 -07:00