Sailcron

Rating: 
5
Your rating: None Average: 5 (7 votes)

Frontend for the cron scheduler. Makes it easy to view your schedules in a more friendly way.

Also gives the opportunity to fully manage crontabs of nemo and root. The usual warning: always be careful with root permissions. Disabling is achieved by adding a specific comment string in the cron entry.

Displayed commands can be replaced by a more meaningful text.

Using cron-descriptor for the conversion of cron expressions into human readable strings.

Using python-crontab for the cron timestring syntax check.

Needs vixie-cron as cron daemon, which can be found in my repo.

Loading a large crontab can cause some unresponsiveness.

If you want to play more with the crontab syntax, you can have a try here: http://www.corntab.com/pages/crontab-gui

Swedish translation: eson

Sources can be found on github

 

Screenshots: 

Keywords:

Application versions: 
AttachmentSizeDate
harbour-sailcron-0.1-12.armv7hl.rpm122.58 KB26/05/2016 - 21:27
harbour-sailcron-0.1-12.i486.rpm124.56 KB26/05/2016 - 21:27
harbour-sailcron-0.1-13.armv7hl.rpm122.47 KB28/06/2016 - 11:10
harbour-sailcron-0.1-13.i486.rpm124.49 KB28/06/2016 - 11:10
harbour-sailcron-0.1-14.armv7hl.rpm126 KB24/12/2016 - 14:17
harbour-sailcron-0.1-14.i486.rpm127.86 KB24/12/2016 - 14:17
harbour-sailcron-0.1-15.i486.rpm128.93 KB25/12/2016 - 11:45
harbour-sailcron-0.1-15.armv7hl.rpm126.98 KB25/12/2016 - 11:45
harbour-sailcron-0.1-16.armv7hl.rpm126.49 KB20/02/2017 - 23:04
harbour-sailcron-0.1-16.i486.rpm128.3 KB20/02/2017 - 23:04
harbour-sailcron-0.1-17.i486.rpm131.93 KB29/04/2017 - 23:58
harbour-sailcron-0.1-17.armv7hl.rpm129.91 KB29/04/2017 - 23:58
harbour-sailcron-0.1-18.i486.rpm132.16 KB16/07/2017 - 19:27
harbour-sailcron-0.1-18.armv7hl.rpm130.22 KB16/07/2017 - 19:27
Changelog: 
  • 0.1-18
    • Cron descriptor updated to 1.2.9
    • Python-crontab updated to 2.2.3
  • 0.1-17
    • Increased max length cron line
    • Cron descriptor updated to 1.2.8
    • Python-crontab updated to 2.2.1
  • 0.1-16 Implemented python call_sync workaround (credits otsaloma) due to bug in 2.1.0.x
  • 0.1-15 Updated swedish translation
  • 0.1-14
    • Edit menu selectable directly from detailspage
    • Synced python-crontab to upstream 2.1.1
    • Cron syntax checker will now fail if cron range is backwards
  • 0.1-13 Settingspage no longer a dialog page (with cancel/accept)
  • 0.1-12 fixed introduced bug that would insert invalid cron entry
  • 0.1-11
    • The input "*/number" was not correctly passed
    • Limit accepted input characters
    • Added new python module for actual cron string checking
  • 0.1-10
    • Increased max length of input fields
    • Included upstream fix for cron-descriptor
  • 0.1-9
    • Updated Swedish
    • Added Dutch language
  • 0.1-8
    • No auto capitalisation in command field
    • Create custom names for execution string
  • 0.1-7 Fixed not showing cron entries with '=' sign
  • 0.1-6 Fixed weekday numbers explanation
  • 0.1-5 Fix: pipe symbol was not handled correctly
  • 0.1-4
    • Included cron-descriptor upstream change for week/month localizations
    • Swedish translation updated
  • 0.1-3
    • Fix: ignoring settings in crontab led to corruption
    • Manage crontab daemon from settings page
  • 0.1-2 Fix: try to ignore settings done in crontab
  • 0.1-1
    • Added Swedish translation
    • Localized days of week in cron-descriptor part
  • 0.1-0 Initial version

Comments

manisblack's picture

Hello and thank you for this application but unfortunately it no longer works on SailfishOS 2.1.0.9
This message is a translation of translate.google

Here is the return of my terminal

[nemo@Sailfish ~]$ harbour-sailcron
[D] unknown:0 - Using Wayland-EGL
[D] :145 - pretty_cron module is now imported
[W] unknown:194 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:194: TypeError: Cannot read property 'backIndicatorDown' of null
[W] unknown:189 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:189: TypeError: Cannot read property 'backIndicatorDown' of null
[W] unknown:247 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:247: TypeError: Cannot read property 'forwardIndicatorDown' of null
[W] unknown:242 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:242: TypeError: Cannot read property 'forwardIndicatorDown' of null
[D] :325 - pretty_cron module is now imported
[D] :328 - valid_cron module is now imported
[D] onError:334 - python error: Not a parameter list in call to valid_cron.validate_cron:
[W] unknown:85 - file:///usr/share/harbour-sailcron/qml/pages/AddPage.qml:85: Error: Cannot assign [undefined] to bool

ade's picture

I am aware of this, hitting the same bug as Otsaloma reported (https://together.jolla.com/question/156736/2109-pyotherside-call_sync-br...). As I already implemented his workaround for now, I will release a new version.

manisblack's picture

Thanks for this update

ade's picture

That's a cool site, I have visited it earlier. Even considered creating a similiar interface, but in the end decided to keep it simple and use text input fields.
In combination with some explanation above the input fields and all the info about cron to be found on the internet, people should manage. And entering values like this keeps people closer to the actual cron syntax.

But this side can be a good exercise/validation site, I did add it to the description here.

eson's picture

Maybe this link could generate some new cron users... :)

http://www.corntab.com/pages/crontab-gui

cizi's picture

Hello, thanks for this application. But can you give me a hint? I tried to added an entry but no luck. I filled all the fields, verified the entry and confirmed save but no line appeared for user nemo in list. What do I wrong? 

ade's picture

hi cizi,

You seem to be right, I can modify entries, but new ones are not saved. I don't know what the issue is, but I will fix it asap.

cizi's picture

Thanks for answer and solution as well! But no worries, no rush.

ade's picture

should be solved now. I must be more careful with pasting ;-)

You will probably have some invalid crontab entries; you can remove them using "crontab -e" on the terminal.

objectifnul's picture

If I enter “0,1,3-6” for the 'day of the week' field, the syntax analyzer says “ok” but the task is displayed with “error in settings” (too bad, as I wanted to set an auto off task for every day except Tuesday to allow the weekly btrfs balance)
Btw “0,1,3,4,5,6” is too long and not accepted.

ade's picture

I will increase the input length of the fields so e.g. “0,1,3,4,5,6” will fit.

Your cronjob should already work as scheduled, but it looks like it can't display the combination of separate weekdays and a range of weekdays. I will make a bugreport for the person who made the module for the human readable translations.

Thanks for reporting.

ade's picture

The cron-descriptor part is targeted for describing the cron rule, not for checking the validity of the string.
That's why I also included another module, python-crontab. This can validate the string. Works pretty good, but still accepts '6-3' as day of week. I may report that.
Furthermore I limited the accepted input characters.

objectifnul's picture

Note that “3-1” is accepted. The descriptor displays “From Wednesday to Monday”. That's fine.

ade's picture

That's another clever approach :-)

Edit: with version 0.0.1-10 both issues should be solved

objectifnul's picture

After checking, "3-1" is actually accepted and correctly translated into human readable language, but not applied: the job is not launched.

"0,1,3,4,5,6" is OK after last update (v0.1-10)

ade's picture

Looks like cron in general can not cope with ranges that start with a higher value than it ends.

I will see if I can do something with that in the cron validation.

localhost's picture

Seems I can't install this app on SailfishOS 2.0.1.7 (early access). I'm getting an repo-not-found error for libpython3_4m1_0-3.4.3-1.6.3.armv7hl.rpm.

Any suggestions on getting it installed?

ade's picture

The terminal command "pkcon refresh" first might help.

objectifnul's picture

The "day of the week" setting says "Range from 0 to 7 (...) Sunday is 0".

So, Monday is 1 etc until Saturday is 6 I guess. But what is 7?

ade's picture

I didn't notice, but you are right, it should be 0 to 6.

Btw the cron syntax validator would not accept the value of 7.

Thanks for informing, will correct this.

objectifnul's picture

Too bad. I thought you invented the three days week-end.

ade's picture

If only I could :-)

Uploaded version 0.0.1-6 with corrected text.

Self_Perfection's picture

I don't like this approach. Systemd timers are known to not activate while a phone in deep sleep, is using cron reliable enough? Are we sure, that cron does not increase amount of wakes from sleep and therefore does not affect running time on one charge much? Anyway this approach requires installation of one more packet and running one more daemon in background, and RAM is always scarce on Jolla.
We can use native system timed service for running scheduled tasks. And I successfully use it for running several scripts on schedule. But I had to create these events with CLI interface timedclient-qt5. In the process of creating these tasks I've discovered that timedclient-qt5 is rather buggy and does not support all timed features, so eventually I modified ~/.timed/events.data with text editor to get what I want.
IMHO UI for managing timed events would be much more useful.

 


 

 


 

ade's picture

Afaik it gets a wakeup every minute (also the minimum time to schedule). No noticable extra power consumption (been using it from the beginning).

The memory footprint, including shared memory, is about 390.0 KiB.

My experience with timedclient-qt5 is not that it is buggy, but a lot of parameters are not implemented (for example hide snooze for an alarm). I don't want to hack in the event files afterwards. I was hoping for clearly documented API calls to talk to timed (as I was used to on the N900), but it looks Jolla still has a lot to do on this matter.

So in the mean time I am perfectly happy with cron to do the job scheduling for me.

objectifnul's picture

Looking for CLI options for "harbour-sailwave" and/or "harbour-quickradio" terminal commands allowing to launch playback of a selected station and to convert Sailcron into a radio alarm clock.

ade's picture

The question is not really related to Sailcron, but anyway :-)

A typical command line for this would be:

bash -l -c "/usr/bin/gst-launch-0.10 -v playbin2 uri=http://download.banshee-project.org/misc/http-test.ogg"

This plays the short test file over http at the given cron time. But gst-launch does not seem to support radio streams well.

Harbour-sailwave does not support parameters, but LLs Video Player does.

The command
bash -l -c "/usr/bin/harbour-videoPlayer -p http://icecast.omroep.nl/3fm-live-mp3"

will start Video Player and play the stream.

Note that I use "bash -l -c" because cron is not aware of environment variables. You could also source /etc/profile for this.

objectifnul's picture

LLs trick (harbour-videoPlayer) is perfect!