PC_MAGAS Δημοσ. 14 Ιουλίου Δημοσ. 14 Ιουλίου Αναπτύσσω μια εντολή στο https://github.com/pc-magas/mkdotenv και γι αυτό σχεδιάζω το usage message να είναι ει δυνατόν καθαρότερο και ευανάγνωστο (το ότι είναι CLI δεν σημαίνει ότι πρέπει να είναι δύσχρηστο): MkDotenv VERSION: 0.4.0 Replace or add a variable into a .env file. Usage: ./bin/mkdotenv-linux-amd64 [ --help|-help|--h|-h ] [ --version|-version|--v|-v ] --variable-name|-variable-name <variable_name> --variable-value|-variable-value <variable_value> [ --env-file|-env-file|--input-file|-input-file <env_file> ] [ --output-file|-output-file <output_file> ] [ --remove-doubles|-remove-doubles ] Options: --help, -help, --h, -h OPTIONAL Display help message and exit --version, -version, --v, -v OPTIONAL Display version and exit --variable-name, -variable-name REQUIRED Name of the variable to be set --variable-value, -variable-value REQUIRED Value to assign to the variable --env-file, -env-file, --input-file, -input-file OPTIONAL Input .env file path (default .env) --output-file, -output-file OPTIONAL File to write output to (`-` for stdout) --remove-doubles, -remove-doubles OPTIONAL Remove duplicate variable entries, keeping the first Όμως δεν ξέρω αν είναι κατανοητό το τι κάνει. Με ενδιαφέρει να είναι κατανοητό για να μπορείτε να το αξιοποιείτε, γι αυτό εσκεμένα δεν περιγράφω τι κάνει. Θέλω να ξέρω αν βολεύει και συγγεκριμένα: Αξίζει που έχω τα arguments σε πολλαπλές γραμμές? Πως σκεύτεστε ότι θα λειτουργεί το `--remove-doubles` flag? Είναι γραμμένο σε go και υποστηρίζει την εισαγωγή των arguments είτε με `--` είτε με `-` μέσω της βιβλιοθήκης flag.
geomagas Δημοσ. 14 Ιουλίου Δημοσ. 14 Ιουλίου (επεξεργασμένο) Εχμ... λοιπόν: 1. Το σκριπτάκι θα βρίσκεται πάντα στο ./bin; Δεν μπορεί κάποιος να το εγκαταστήσει κάπου αλλού; 2. mkdotenv-linux-amd64 είναι μεγάλο όνομα... Γιατί όχι απλά mkdotenv (ή στα μερακλίκια mk.env :D) 3. Δεν έχει νόημα να βάζεις τα ίδια ονόματα στις παραμέτρους στο short και στο long format. Πχ για το version, κράτα μόνο τα -v και --version. 4. Θα πρέπει να ξεχωρίσεις ποια είναι τα βασικά ορίσματα και ποιες είναι παράμετροι. Πχ το όνομα και η τιμή της μεταβλητής είναι βασικά ορίσματα (ο λόγος που το φτιάχνεις), και θα μπορούσαν απλά να εκφραστούν σαν name=value, χωρίς - ή --. Δεν θυμάμαι ποτέ να έγραψα cp --from file1 --to file2... 5. To input file τι κάνει;;; Προσπαθώ να βρω σενάριο να κουμπώνει, αλλά δεν... 6. Το αν κάτι είναι υποχρεωτικό ή όχι, φαίνεται από τις αγκύλες ([ ]), οπότε δεν χρειάζεται να το επαναλαμβάνεις στις επεξηγήσεις. 7. Αν το output file είναι προαιρετικό, γιατί χρειάζεται να του δώσω - για stdout; Αν δεν του δώσω τίποτα, τι θα κάνει; Δεν μπορεί απλά να κάνει default στο stdout; 8. Όλοι οι συνδυασμοί παραμέτρων είναι έγκυροι; Μπορώ δηλαδή να του δώσω -h -v --output-file foo.env; Έχοντας πει αυτά, το φαντάζομαι κάπως έτσι: MkDotenv VERSION: 0.4.0 Replace or add a variable into a .env file. Usage: mkdotenv -h mkdotenv -v mkdotenv [-r] name=value [-o <output file>] Options: --help, -h Display help message and exit --version, -v Display version and exit --output-file, -o File to write output to (defaults to stdout) --remove-doubles, -r Remove duplicate variable entries, keeping the first Επεξ/σία 14 Ιουλίου από geomagas
PC_MAGAS Δημοσ. 6 Αυγούστου Μέλος Δημοσ. 6 Αυγούστου Στις 14/7/2025 στις 11:07 ΜΜ, geomagas είπε 1. Το σκριπτάκι θα βρίσκεται πάντα στο ./bin; Δεν μπορεί κάποιος να το εγκαταστήσει κάπου αλλού; 2. mkdotenv-linux-amd64 είναι μεγάλο όνομα... Γιατί όχι απλά mkdotenv (ή στα μερακλίκια mk.env :D) Το όνομα `./bin/mkdotenv-linux-amd64` είναι Δυναμικό (πρώτο argument όπως στην C) κατα το installation είναι mkdotenv. Στις 14/7/2025 στις 11:07 ΜΜ, geomagas είπε 3. Δεν έχει νόημα να βάζεις τα ίδια ονόματα στις παραμέτρους στο short και στο long format. Πχ για το version, κράτα μόνο τα -v και --version. Τα -v και --version είναι της go και το πακέτο flags που δέχετε ΚΑΙ τους 2 τρόπους. Στις 14/7/2025 στις 11:07 ΜΜ, geomagas είπε 5. To input file τι κάνει;;; Προσπαθώ να βρω σενάριο να κουμπώνει, αλλά δεν... `.env` αρχείο που θα διαβάσει και θα το τροποποιήσει Στις 14/7/2025 στις 11:07 ΜΜ, geomagas είπε 7. Αν το output file είναι προαιρετικό, γιατί χρειάζεται να του δώσω - για stdout; Αν δεν του δώσω τίποτα, τι θα κάνει; Δεν μπορεί απλά να κάνει default στο stdout; Γιατί by default εγγράφει στο αρχείο `.env` και δεν κάνει stdout.
masteripper Δημοσ. 6 Αυγούστου Δημοσ. 6 Αυγούστου Αν δεν έχει arguments βάλε να εμφανίζει το help και να παρουσιάζει σαν επιλογή το 1ο διαθέσιμο .env με την σύνταξη που χρειάζεται
PC_MAGAS Δημοσ. 6 Αυγούστου Μέλος Δημοσ. 6 Αυγούστου (επεξεργασμένο) Στις 14/7/2025 στις 11:07 ΜΜ, geomagas είπε 8. Όλοι οι συνδυασμοί παραμέτρων είναι έγκυροι; Μπορώ δηλαδή να του δώσω -h -v --output-file foo.env; Δεν θα σου σκάσει απλά στην περίπτωση αυτή θα λαμβάνει τι είναι πρώτο Δλδ αν δωθεί το `-h` θα είναι help. Βασικά όταν δωθεί `-h` θα εμφανίζει help ανεξάρτητα τι δίδεις. Τα υπόλοιπα θα ανγοούνται. Επεξ/σία 6 Αυγούστου από PC_MAGAS
PC_MAGAS Δημοσ. 6 Αυγούστου Μέλος Δημοσ. 6 Αυγούστου 4 ώρες πριν, masteripper είπε Αν δεν έχει arguments βάλε να εμφανίζει το help και να παρουσιάζει σαν επιλογή το 1ο διαθέσιμο .env με την σύνταξη που χρειάζεται Παίζει έτσι as well αν δώσεις κάτι λάθος η δεν δώσεις argument εμφανίζει το Help Message.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα