I've created a NickelMenu config that has a dynamic label for starting/stopping the FTP or Telnet server, and for turning the backlight off and on. It shows "FTP Start" when clicking it will start the FTP server, and "FTP Stop" when clicking it will stop the currently running FTP server.
Code:
## Do not change the comments right before the menu items
## The `sed` command uses it for finding the config line
## filename is assumed to be "config"
## if you change it the `sed` commands need to be updated
#
## Main Menu
#
#
## Telnet Toggle
menu_item : main : Telnet Start : cmd_output : 500:quiet :/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 2023"
chain_success:skip:11
chain_failure : cmd_spawn : quiet :/bin/mount -t devpts | /bin/grep -q /dev/pts || { /bin/mkdir -p /dev/pts && /bin/mount -t devpts devpts /dev/pts; }
chain_success:skip:2
chain_failure : dbg_toast : Error starting Telnet server on port 2023
chain_success:skip:-1
chain_success : cmd_spawn : quiet :exec /usr/bin/tcpsvd -E 0.0.0.0 2023 /usr/sbin/telnetd -i -l /bin/login
chain_success : cmd_output : 500:quiet :grep -x 'ForceWifiOn=true' '/mnt/onboard/.kobo/Kobo/Kobo eReader.conf'
chain_failure : nickel_setting : enable : force_wifi
chain_success : nickel_wifi : autoconnect_silent
chain_success : dbg_toast : Started Telnet server on port 2023
chain_success : cmd_spawn : quiet :sed -i '/^## Telnet Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 Telnet Stop \2/ }' /mnt/onboard/.adds/nm/config
chain_always:skip:-1
chain_success : dbg_toast : Stopped Telnet server on port 2023
chain_success : cmd_spawn : quiet :sed -i '/^## Telnet Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 Telnet Start \2/ }' /mnt/onboard/.adds/nm/config
chain_success : cmd_output : 500:quiet :/usr/bin/pgrep -f "^/usr/bin/tcpsvd -E 0.0.0.0 1021"
chain_failure : nickel_setting : disable : force_wifi
#
## FTP Toggle
menu_item : main : FTP Start : cmd_output : 500:quiet :/usr/bin/pkill -f "^/usr/bin/tcpsvd -E 0.0.0.0 1021"
chain_success:skip:10
chain_failure : cmd_spawn : quiet :exec /usr/bin/tcpsvd -E 0.0.0.0 1021 /usr/sbin/ftpd -w -t 30 /mnt/onboard
chain_success:skip:2
chain_failure : dbg_toast : Error starting FTP server on port 1021
chain_success:skip:-1
chain_success : cmd_output : 500:quiet :grep -x 'ForceWifiOn=true' '/mnt/onboard/.kobo/Kobo/Kobo eReader.conf'
chain_failure : nickel_setting : enable : force_wifi
chain_success : nickel_wifi : autoconnect_silent
chain_success : dbg_toast : Started FTP server on port 1021
chain_success : cmd_spawn : quiet :sed -i '/^## FTP Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 FTP Stop \2/ }' /mnt/onboard/.adds/nm/config
chain_always:skip:-1
chain_success : dbg_toast : Stopped FTP server on port 1021
chain_success : cmd_spawn : quiet :sed -i '/^## FTP Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 FTP Start \2/ }' /mnt/onboard/.adds/nm/config
chain_success : cmd_output : 500:quiet :/usr/bin/pgrep -f "^/usr/bin/tcpsvd -E 0.0.0.0 2023"
chain_failure : nickel_setting : disable : force_wifi
#
## Library Menu
#
#
## Light Toggle
menu_item : library : Light On : cmd_output : 500: quiet :/bin/sh -c 'if [ "$(cat /sys/class/backlight/mxc_msp430.0/actual_brightness)" -eq "0" ]; then exit 1; else exit 0; fi'
chain_success:skip:3
chain_failure : cmd_spawn : quiet :ioctl /dev/ntx_io 241 -v 8
chain_success : cmd_spawn : quiet :sed -i '/^## Light Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 Light Off \2/ }' /mnt/onboard/.adds/nm/config
chain_always:skip:-1
chain_success : cmd_spawn : quiet :ioctl /dev/ntx_io 241 -v 0
chain_success : cmd_spawn : quiet :sed -i '/^## Light Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 Light On \2/ }' /mnt/onboard/.adds/nm/config
#
## Reading Menu
#
## Light Toggle
menu_item : reader : Light On : cmd_output : 500: quiet :/bin/sh -c 'if [ "$(cat /sys/class/backlight/mxc_msp430.0/actual_brightness)" -eq "0" ]; then exit 1; else exit 0; fi'
chain_success:skip:3
chain_failure : cmd_spawn : quiet :ioctl /dev/ntx_io 241 -v 8
chain_success : cmd_spawn : quiet :sed -i '/^## Light Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 Light Off \2/ }' /mnt/onboard/.adds/nm/config
chain_always:skip:-1
chain_success : cmd_spawn : quiet :ioctl /dev/ntx_io 241 -v 0
chain_success : cmd_spawn : quiet :sed -i '/^## Light Toggle/ { n; s/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1 Light On \2/ }' /mnt/onboard/.adds/nm/config
The FTP and Telnet toggles also turn on the Forced Wifi option if it's not already on, and turn it off once it's the last thing running. Meaning that if you start both Telnet and FTP, and then stop Telnet, the ForcedWifi setting won't be turned off untill you stop the FTP server.
Note that if you reboot the device with FTP or Telnet on, the menu labels will be out of sync, but once you use them once they will resync.
The light menu option will also be out of sync if you change it manually instead, but will also resync once you use it once. It's set to turn it on to level 8, which of course can be changed
Code:
ioctl /dev/ntx_io 241 -v 8 <-- set this to the level you want