Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ariya/berkala

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ariya/berkala

Run scheduled tasks

  • 1.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
17
increased by1600%
Maintainers
1
Weekly downloads
 
Created
Source

Berkala

GitHub license Tests

Berkala runs scheduled tasks specified in a YAML-based configuration.

To get started, first download the binary for your operating system from the Releases page. Unpack the ZIP file and run the executable.

Since a config file does not exist yet, you will be offered to create one. Simply accept it and berkala.yml will be created, which may look like the following:

tasks:

  # Without an explicit interval, the task runs immediately
  boot:
    steps:
    - notify: Berkala starts now

  stay-hydrated:
    interval: every 1 hour
    steps:
    - notify: Drink some water! # TODO: how much?
    - print: Reminder was sent

  lunch:
    interval: at 11:58am
    steps:
    - notify: It's lunch time very soon
      title: Important
    - say: Get ready for lunch

  sign-of-life:
    interval: every 2 hours
    steps:
    - run: ping -c 7 google.com
      timeout-minutes: 2

  weekend-exercise:
    cron: 0 9 * * 6  # every 9 morning on Saturday
    steps:
    - notify: Time for some exercises!
      title: Stay healthy

Just like any regular YAML, everything from the # character until the end of the line will be ignored. Use this to insert comments.

The schedule for each task can be specified as:

If neither is explicitly stated, then the task runs right away.

Each task consists of one or more steps.

Every step must be one of the following:

run: executes a shell command

Example:

  sign-of-life:
    interval: every 30 minutes
    steps:
    - run: ping -c 7 google.com

Optionally, timeout-minutes can be used to limit the execution time and working-directory can be used to set the directory to start the execution from.

Another example:

  sys-resource:
    interval: every 2 hours
    steps:
    - run: |
        date >> resources.log
        top | head -n 4 >> resources.log
      timeout-minutes: 3
      working-directory: /var/log
print: displays a message to the standard output

Example:

  morning:
    interval: at 7:00am
    steps:
    - print: Good morning!
notify: sends a desktop notification

Optionally, title can be used to set the notification title.

Example:

  mahlzeit:
    interval: at 11:58am
    steps:
    - notify: It's lunch time very soon
      title: Yummy

The notification is supported on the following system:

say: converts text to audible speech

Example:

  vaya-con-dios:
    interval: 0 17 * * 1-5  # every workday late afternoon
    steps:
    - say: Time to go home

The text-to-speech conversion is supported on the following system:

Found a problem or have a new idea? File an issue!

Alternative way to run Berkala (with Node.js)

With Node.js v14 or later (that has npx):

npx @ariya/berkala

To run the development version, check out this repo and then:

npm install
npm start

npm version npm bundle size (minified)

Keywords

FAQs

Package last updated on 10 Sep 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc