Skip to main content

Automatically created environment for python package

Project description

cronvice

maintain your programs running under SCREEN using AT job scheduler

Example

 # example
cronvice --help

Installation

# you need the scheduler
# sudo  apt install at # NOT HERE
sudo apt install crontab
# you nee the code (anti PEP 668 way)
pip3 install cronvice

All scripts must be in ~/.myservice/anyname/tag

  • where ~/.myservice is the S-PATH, path to scripts structure
  • anyname - can be number of different subfolders
  • tag must be a executable script with a uniqe name in all ~/.myservice
  • ~/.config/cronvice/cfg.json - contains the S-PATH ("services")
  • without a parameter, interactive tui is run, quit it with .q

Usage

Harmless calls

cris l
cris t syncthing
cris p syncthing
cris c syncthing

Enter to screen enviroment when running

cris e syncthing
  • r(un)
  • a(dd)
  • d(elete)
  • e(nter)
  • c(omment show)
  • t(ime show)
  • p(ath show)
  • l(ist cron)
  • x (block service call with impossible timestamp)

Important services

PI

  • inet/apswitch
  • inet/piaddr.py
  • warning/lowdisk
  • hwdevs/tele012ntc (technic)
  • image/flashcam8000
  • image/flashcam5000

BUGS

  • crashes when no crontab defined
  • DATE MUST BE `Sat 12 Apr 17:09:55 CEST 2025`
    • NOT `Sat Apr 12 15:09:39 UTC 2025`
    • use install.me script to repair

Appendix

these are comments for using uv and uvx.... this is new stuff

New workflow with environments

Workflow

  • ./distcheck.sh (no pip3 inside)

    • if twine{.verbatim} not present, uv tool install --force twine
    • same with uv tool install --force bump2version
  • uv tool install --upgrade cronvice and if hidden errors:

    • uv tool install --upgrade cronvice==0.1.31 force to reveal
  • NEVERTHELESS, environment is needed

    • make ~/.venv
    • cd ~/.venv
    • uv venv myservicenv and it is in this user folder.
    • ANY USE NEEDS source ~/.venv/myservicenv/bin/activate
    • All stuff needs to be installed via uv: like uv pip install fire
    • When all is installed, source ...activate is run before python call
      • which works for tele01 that calls te01.py
      • that has normal shebang
  • PROBLEM for influx_chrony

    • no idea now...
  • NO PROBLEM telegrf, only telegraf needs to get installed

    Using local venv is even better

    uv venv creates local .venv in the project, see more and more about lock

Hybrid shebang

two cases with different environemnts are hard

#!/bin/bash
#myservice_description: disk and ntp to INFLUX

"""" 2>/dev/null
# BASH CODE STARTS HERE

echo "Hello world from Bash!"
sleep 1
if [ -e "$HOME/.venv/myservicenv/bin/activate" ]; then
 source  $HOME/.venv/myservicenv/bin/activate
 echo i... myservicenev is activated
else
 echo i... not activated
fi
sleep 2
# BASH CODE ENDS HERE
/usr/bin/env python3 $0
exit
"""


#Python code goes here
"""
...
PEP668  UV UVX.... I dont know how to use environment....
"""
import fire
import subprocess as sp
import socket

if __name__=="__main__":
    fire.Fire( main )

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cronvice-0.1.55.tar.gz (40.9 kB view details)

Uploaded Source

File details

Details for the file cronvice-0.1.55.tar.gz.

File metadata

  • Download URL: cronvice-0.1.55.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for cronvice-0.1.55.tar.gz
Algorithm Hash digest
SHA256 6a7720b058174e6c15433618c39a0f040cb9eeb3ce59aa5f792de323b6a6f402
MD5 0f0cf53d98b66e236102548a5c7d23e2
BLAKE2b-256 434817b9f82913d68e6100ecdb1a80e87a548014a6f2fd598e75b9326ff137ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page