Σχετικά με

Το HR CLI είναι ένα εργαλείο γραμμής εντολών για διάφορες λειτουργίες που αφορούν το ανθρώπινο δυναμικό του ΕΛΚΕΘΕ όπως εκκαθάριση μη ενεργών υπαλλήλων, ενημέρωση ελλιπών στοιχείων προσωπικού, ενημέρωση χρηστών προς συνταξιοδότηση κλπ. Ουσιαστικά αναλαμβάνει ένα συνδετικό κρίκο μεταξύ καταλόγου LDAP και της βάσης προσωπικού που φιλοξενείται σε Oracle.

Το εργαλείο έχει γραφέι σε rust με στόχο την απροβλημάτιστη και ασφαλή εκτέλεσή του με αυστηρό static typing και unit tests για τη διαβεβαίωση της ορθής λειτουργίας του.

Πηγαίος κώδικας μπορεί να βρεθεί εδώ.

Δομή

├── Cargo.lock
├── Cargo.toml
├── LICENSE
├── python
│   └── romanize.py
├── queries (script επικοινωνίας με τη βάση)
│   ├── db-list-mobiles.sql
│   ├── personnel-check-filled.sql
│   ├── personnel-check-missing.sql
│   └── personnel-check-retired.sql
├── README.md
├── src
│   ├── actions.rs (ενέργειες)
│   ├── email.rs (συναρτήσεις επικοινωνίας με email)
│   ├── ldap.rs (συναρτήσεις επικοινωνίας με LDAP)
│   ├── main.rs (κεντρικό αρχείο)
│   └── models.rs (μοντέλα)
└── target
    ├── CACHEDIR.TAG
    ├── debug
    ├── doc
    └── release (φάκελος compilation με εκτελέσιμο)

Απαιτήσεις

Για το επιτυχές compilation του προγράμματος απαιτείται κατ’ελάχιτον:

  • Rust 1.91.1+
  • Oracle instantclient 23.7.0+

Ανάπτυξη

Προγραμματισμός γίνεται σε rust κυρίως στα αρχεία που βρίσκονται στο src φάκελο. Οποιαδήποτε προσθήκη query γίνεται στο φάκελο queries και καλείται μέσα από τον κώδικα. Για την παραγωγή του εκτελέσιμου, εκτελείται η cargo build --release και το εκτελέσιμο αρχείο target/release/hr-cli μεταφέρεται με FTP στον server.

Εκτέλεση

Το εκτελέσιμο βρίσκεται στη διαδρομή: /home/nocuser/hcmr-cli

Για λεπτομέρειες της σύνταξης της εντολής μπορείτε να εκτελέσετε ./hr-cli -h

Usage: hr-cli –domain

Commands: missing filled exists retired add clean sync auto-register help Print this message or the help of the given subcommand(s)

Options: -d, –domain -h, –help Print help -V, –version Print version

Επιπλέον κάποιες εντολές προορίζονται για επαναλαμβανόμενη εκτέλεση μέσω crontab όπως φαίνεται στην παρακάτω εικόνα:

Screenshot 2026-01-24 at 7.02.28 PM