Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Αναπτύσσω μια εντολή στο 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.

 

Δημοσ. (επεξεργασμένο)

Εχμ... λοιπόν:

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

 

Επεξ/σία από geomagas
  • 4 εβδομάδες αργότερα...
Δημοσ.
Στις 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.

Δημοσ.

Αν δεν έχει arguments βάλε να εμφανίζει το help και να παρουσιάζει σαν επιλογή το 1ο διαθέσιμο .env με την σύνταξη που χρειάζεται

 

Δημοσ. (επεξεργασμένο)
Στις 14/7/2025 στις 11:07 ΜΜ, geomagas είπε

8. Όλοι οι συνδυασμοί παραμέτρων είναι έγκυροι; Μπορώ δηλαδή να του δώσω -h -v --output-file foo.env;

 

Δεν θα σου σκάσει απλά στην περίπτωση αυτή θα λαμβάνει τι είναι πρώτο Δλδ αν δωθεί το `-h` θα είναι help. Βασικά όταν δωθεί `-h` θα εμφανίζει help ανεξάρτητα τι δίδεις. Τα υπόλοιπα θα ανγοούνται.

Επεξ/σία από PC_MAGAS
Δημοσ.
4 ώρες πριν, masteripper είπε

Αν δεν έχει arguments βάλε να εμφανίζει το help και να παρουσιάζει σαν επιλογή το 1ο διαθέσιμο .env με την σύνταξη που χρειάζεται

 

Παίζει έτσι as well αν δώσεις κάτι λάθος η δεν δώσεις argument εμφανίζει το Help Message.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...