Initial commit
This commit is contained in:
		
							parent
							
								
									9b126bfc6e
								
							
						
					
					
						commit
						87a295193a
					
				
							
								
								
									
										32
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								README.md
									
									
									
									
									
								
							| @ -1 +1,31 @@ | |||||||
| # star_trek_date | # star_trek_date | ||||||
|  | 
 | ||||||
|  | ## Installation | ||||||
|  | 
 | ||||||
|  | To install this on your system, the files need to go in certain places; | ||||||
|  | 
 | ||||||
|  | ### bin/* (main script and config file) | ||||||
|  | 
 | ||||||
|  | Copy the files in bin/* to your $HOME/bin directory or /usr/local/bin or /usr/bin dir (or your chosen dir that's in the $PATH) | ||||||
|  | 
 | ||||||
|  | ### bash.d/* (tab completion script) | ||||||
|  | 
 | ||||||
|  | Copy the file in bash.d/* to your $HOME/.bash.d directory, and make sure your $HOME/.bashrc sources all files in that dir | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ## Usage | ||||||
|  | 
 | ||||||
|  | Usage: star_trek_date <language> [-d|--debug] [-l|--list] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ## Examples | ||||||
|  | 
 | ||||||
|  | '''bash | ||||||
|  | $ star_trek_date klingon | ||||||
|  | Today's date in Klingon is: wejleS jaj 19, jar jar | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | $ star_trek_date vulcan | ||||||
|  | Today's date in Vulcan is: klosh wak 19, t'vash shen | ||||||
|  | ``` | ||||||
|  | |||||||
							
								
								
									
										17
									
								
								bash.d/star_trek_date
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								bash.d/star_trek_date
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | _star_trek_date_complete() | ||||||
|  | { | ||||||
|  |     local cur prev opts | ||||||
|  |     _get_comp_words_by_ref -n : cur | ||||||
|  | 
 | ||||||
|  |     COMPREPLY=() | ||||||
|  |     cur="${COMP_WORDS[COMP_CWORD]}" | ||||||
|  |     prev="${COMP_WORDS[COMP_CWORD-1]}" | ||||||
|  |     opts="$(star_trek_date vulcan -l|grep -v '^Available languages')" | ||||||
|  | 
 | ||||||
|  |     if [ ${COMP_CWORD} = 1 ]; then | ||||||
|  | 	 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) | ||||||
|  | 	 __ltrim_colon_completions "$cur" | ||||||
|  |     fi | ||||||
|  |     return 0 | ||||||
|  | } | ||||||
|  | complete -F _star_trek_date_complete star_trek_date | ||||||
							
								
								
									
										94
									
								
								bin/star_trek_date
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										94
									
								
								bin/star_trek_date
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,94 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | 
 | ||||||
|  | # Configuration file path | ||||||
|  | CONFIG_DIR="$(dirname $0)" | ||||||
|  | CONFIG_FILE="${CONFIG_DIR}/star_trek_languages.conf" | ||||||
|  | DEBUG=false | ||||||
|  | 
 | ||||||
|  | # Function to display debug messages | ||||||
|  | debug() { | ||||||
|  |     if [ "$DEBUG" = true ]; then | ||||||
|  |         echo "DEBUG: $1" | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Function to list available languages | ||||||
|  | list_languages() { | ||||||
|  |     echo "Available languages:" | ||||||
|  |     grep -E "^[a-zA-Z_]+ " "$CONFIG_FILE"|awk '{print $1}'|grep -v _|sort -u | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Function to translate date to a fictional language | ||||||
|  | translate_date() { | ||||||
|  |     local language=$1 | ||||||
|  |     local day_label="" | ||||||
|  |     local month_label="" | ||||||
|  |     local day_of_week_label="" | ||||||
|  |     local month_of_year_label="" | ||||||
|  |      | ||||||
|  |     # Get the current day, month, and day of week | ||||||
|  |     current_day=$(date +%d) | ||||||
|  |     current_month=$(date +%B) | ||||||
|  |     current_day_of_week=$(date +%u) | ||||||
|  | 
 | ||||||
|  |     debug "Current day: $current_day" | ||||||
|  |     debug "Current month: $current_month" | ||||||
|  |     debug "Current day of week: $current_day_of_week" | ||||||
|  | 
 | ||||||
|  |     # Read the configuration file and get the labels | ||||||
|  |     while IFS= read -r line; do | ||||||
|  |         if [[ $line == "$language "* ]]; then | ||||||
|  |             day_label=$(echo $line | awk '{print $2}') | ||||||
|  |             month_label=$(echo $line | awk '{print $3}') | ||||||
|  |         elif [[ $line == "${language}_day $current_day_of_week "* ]]; then | ||||||
|  |             day_of_week_label=$(echo $line | awk '{print $3}') | ||||||
|  |         elif [[ $line == "${language}_month $current_month "* ]]; then | ||||||
|  |             month_of_year_label=$(echo $line | awk '{print $3}') | ||||||
|  |         fi | ||||||
|  |     done < "$CONFIG_FILE" | ||||||
|  | 
 | ||||||
|  |     debug "Day label: $day_label" | ||||||
|  |     debug "Month label: $month_label" | ||||||
|  |     debug "Day of week label: $day_of_week_label" | ||||||
|  |     debug "Month of year label: $month_of_year_label" | ||||||
|  | 
 | ||||||
|  |     if [ -z "$day_label" ] || [ -z "$month_label" ] || [ -z "$day_of_week_label" ] || [ -z "$month_of_year_label" ]; then | ||||||
|  |         echo "Language not supported or not found in the configuration file." | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     # Translate and display the date | ||||||
|  |     echo "Today's date in ${language^} is: $day_of_week_label $day_label $current_day, $month_of_year_label $month_label" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Check for command line arguments | ||||||
|  | if [ $# -eq 0 ]; then | ||||||
|  |     echo "Usage: $(basename $0) <language> [-d|--debug] [-l|--list]" | ||||||
|  |     exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Parse command line arguments | ||||||
|  | language=${1,,} | ||||||
|  | shift | ||||||
|  | args=${1,,} | ||||||
|  | while [[ "$args" ]]; do | ||||||
|  |     case $args in | ||||||
|  |         -d|--debug) | ||||||
|  |             DEBUG=true | ||||||
|  |             ;; | ||||||
|  |         -l|--list) | ||||||
|  |             list_languages | ||||||
|  |             exit 0 | ||||||
|  |             ;; | ||||||
|  |         *) | ||||||
|  |             echo "Unknown option: $1" | ||||||
|  |             echo "Usage: $0 <language> [-d|--debug] [-l|--list]" | ||||||
|  |             exit 1 | ||||||
|  |             ;; | ||||||
|  |     esac | ||||||
|  |     shift | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | # Call the function with the provided language | ||||||
|  | translate_date "$language" | ||||||
|  | 
 | ||||||
							
								
								
									
										90
									
								
								bin/star_trek_languages.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								bin/star_trek_languages.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,90 @@ | |||||||
|  | # star_trek_languages.conf | ||||||
|  | # Format: <language> <day> <month> <day_of_week> <month_of_year> | ||||||
|  | 
 | ||||||
|  | # Klingon (example translations) | ||||||
|  | klingon jaj jar | ||||||
|  | klingon_day 1 wa'leS | ||||||
|  | klingon_day 2 cha'leS | ||||||
|  | klingon_day 3 wejleS | ||||||
|  | klingon_day 4 loSleS | ||||||
|  | klingon_day 5 vaghleS | ||||||
|  | klingon_day 6 javleS | ||||||
|  | klingon_day 7 SochleS | ||||||
|  | klingon_month January jar wa' | ||||||
|  | klingon_month February jar cha' | ||||||
|  | klingon_month March jar wej | ||||||
|  | klingon_month April jar loS | ||||||
|  | klingon_month May jar vagh | ||||||
|  | klingon_month June jar jav | ||||||
|  | klingon_month July jar Soch | ||||||
|  | klingon_month August jar chorgh | ||||||
|  | klingon_month September jar Hut | ||||||
|  | klingon_month October jar wa'maH | ||||||
|  | klingon_month November jar wa'maH wa' | ||||||
|  | klingon_month December jar wa'maH cha' | ||||||
|  | 
 | ||||||
|  | # Vulcan (example translations) | ||||||
|  | vulcan wak shen | ||||||
|  | vulcan_day 1 danik | ||||||
|  | vulcan_day 2 t'khasi | ||||||
|  | vulcan_day 3 klosh | ||||||
|  | vulcan_day 4 hastek | ||||||
|  | vulcan_day 5 p'pil'lay | ||||||
|  | vulcan_day 6 t'plana | ||||||
|  | vulcan_day 7 s'tar | ||||||
|  | vulcan_month January shen t'Khasi | ||||||
|  | vulcan_month February t'shen | ||||||
|  | vulcan_month March t'ratikh | ||||||
|  | vulcan_month April t'ke-tayek | ||||||
|  | vulcan_month May t'khaf-spol | ||||||
|  | vulcan_month June t'vash | ||||||
|  | vulcan_month July t'masu | ||||||
|  | vulcan_month August t'mekh | ||||||
|  | vulcan_month September t'kor | ||||||
|  | vulcan_month October t'klom | ||||||
|  | vulcan_month November t'kuht | ||||||
|  | vulcan_month December t'vakh | ||||||
|  | 
 | ||||||
|  | # Romulan (example translations) | ||||||
|  | romulan daie muhr | ||||||
|  | romulan_day 1 daehhae | ||||||
|  | romulan_day 2 retor | ||||||
|  | romulan_day 3 ssuaj | ||||||
|  | romulan_day 4 mavj | ||||||
|  | romulan_day 5 kra | ||||||
|  | romulan_day 6 dhas | ||||||
|  | romulan_day 7 llet | ||||||
|  | romulan_month January muhr kaleh | ||||||
|  | romulan_month February muhr fvai | ||||||
|  | romulan_month March muhr ress | ||||||
|  | romulan_month April muhr kuria | ||||||
|  | romulan_month May muhr velk | ||||||
|  | romulan_month June muhr jen | ||||||
|  | romulan_month July muhr lal | ||||||
|  | romulan_month August muhr huv | ||||||
|  | romulan_month September muhr fvin | ||||||
|  | romulan_month October muhr tasar | ||||||
|  | romulan_month November muhr nev | ||||||
|  | romulan_month December muhr nor | ||||||
|  | 
 | ||||||
|  | # Bajoran (example translations) | ||||||
|  | bajoran ja kil | ||||||
|  | bajoran_day 1 yot | ||||||
|  | bajoran_day 2 ran | ||||||
|  | bajoran_day 3 tre | ||||||
|  | bajoran_day 4 ren | ||||||
|  | bajoran_day 5 sen | ||||||
|  | bajoran_day 6 lor | ||||||
|  | bajoran_day 7 vor | ||||||
|  | bajoran_month January kil yat | ||||||
|  | bajoran_month February kil du | ||||||
|  | bajoran_month March kil tse | ||||||
|  | bajoran_month April kil var | ||||||
|  | bajoran_month May kil lim | ||||||
|  | bajoran_month June kil sen | ||||||
|  | bajoran_month July kil sev | ||||||
|  | bajoran_month August kil og | ||||||
|  | bajoran_month September kil ren | ||||||
|  | bajoran_month October kil tor | ||||||
|  | bajoran_month November kil lat | ||||||
|  | bajoran_month December kil bek | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 MeaTLoTioN
						MeaTLoTioN