Lots of ideas
This commit is contained in:
		
							parent
							
								
									f0a0ebc91f
								
							
						
					
					
						commit
						cef0df387c
					
				
							
								
								
									
										5
									
								
								.cspell.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.cspell.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "version": "0.2",
 | 
				
			||||||
 | 
					  "language": "en",
 | 
				
			||||||
 | 
					  "words": ["FLAMP"]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										75
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					# fqt - FLAMP Queue Touch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Desired Use Cases
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Do a lot of checking.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Prompt user. They don't use this tool often. Guide them and prompt them.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Allow prompts to be overridden with `-y|--yes` or `-f|--force` and by piping `yes` command?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					$ fqt filename.k2s
 | 
				
			||||||
 | 
					2023-06-02 02:00:00 -04:00
 | 
				
			||||||
 | 
					2023-06-01 22:00:00 Z
 | 
				
			||||||
 | 
					Yes Compression, base 64, block size 64: D6F6
 | 
				
			||||||
 | 
					No Compression, base 64, block size 64 : A123
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ fqt -z filename.k2s
 | 
				
			||||||
 | 
					2023-06-02 02:00:00 -04:00
 | 
				
			||||||
 | 
					2023-06-01 22:00:00 Z
 | 
				
			||||||
 | 
					Yes Compression, base 64, block size 64: D6F6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ fqt -r filename.k2s
 | 
				
			||||||
 | 
					2023-06-02 02:00:00 -04:00
 | 
				
			||||||
 | 
					2023-06-01 22:00:00 Z
 | 
				
			||||||
 | 
					No Compression, base 64, block size 64 : A123
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ fqt -b128 filename.k2s
 | 
				
			||||||
 | 
					2023-06-02 02:00:00 -04:00
 | 
				
			||||||
 | 
					2023-06-01 22:00:00 Z
 | 
				
			||||||
 | 
					Yes Compression, base 128, block size 64: D6F6
 | 
				
			||||||
 | 
					No Compression, base 128, block size 64 : A123
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ fqt -s96 filename.k2s
 | 
				
			||||||
 | 
					2023-06-02 02:00:00 -04:00
 | 
				
			||||||
 | 
					2023-06-01 22:00:00 Z
 | 
				
			||||||
 | 
					Yes Compression, base 64, block size 96: D6F6
 | 
				
			||||||
 | 
					No Compression, base 64, block size 96 : A123
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ fqt --base256 --block-size=96 filename.k2s
 | 
				
			||||||
 | 
					2023-06-02 02:00:00 -04:00
 | 
				
			||||||
 | 
					2023-06-01 22:00:00 Z
 | 
				
			||||||
 | 
					Yes Compression, base 256, block size 96: D6F6
 | 
				
			||||||
 | 
					No Compression, base 256, block size 96 : A123
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ fqt 20230610151423 filename.k2s
 | 
				
			||||||
 | 
					Before:
 | 
				
			||||||
 | 
					2023-06-02 02:00:00 -04:00
 | 
				
			||||||
 | 
					2023-06-01 22:00:00 Z
 | 
				
			||||||
 | 
					Yes Compression, base 64, block size 64: D6F6
 | 
				
			||||||
 | 
					No Compression, base 64, block size 64 : A123
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After:
 | 
				
			||||||
 | 
					2023-06-10 15:14:23 -04:00
 | 
				
			||||||
 | 
					2023-06-10 11:14:23 Z
 | 
				
			||||||
 | 
					Yes Compression, base 64, block size 64: EF45
 | 
				
			||||||
 | 
					No Compression, base 64, block size 64 : 5D4E
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```text
 | 
				
			||||||
 | 
					-b64, --base64              Select encoding scheme.
 | 
				
			||||||
 | 
					-b128, --base128            Default is base64.
 | 
				
			||||||
 | 
					-b256, --base256
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-s, --block-size=SIZE       Sets block size in multiples of 16, default 64.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-z, --use-compression       compression yes, common for large files like bulletins.
 | 
				
			||||||
 | 
					-r, --no-compression        compression no, common for smaller files like signatures.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--no-date                   Suppress dates display in output.
 | 
				
			||||||
 | 
					-h, --display-hash          Display hash alone.
 | 
				
			||||||
 | 
					-q, --quiet                 Minimal output.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-f, -y, --force, --yes      No prompting before changing file date.
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										99
									
								
								fqt
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								fqt
									
									
									
									
									
								
							@ -64,6 +64,9 @@ LongHelp()
 | 
				
			|||||||
   echo '  BS  = Block Size, 1 or more characters'
 | 
					   echo '  BS  = Block Size, 1 or more characters'
 | 
				
			||||||
   echo '   |  = Field separator.'
 | 
					   echo '   |  = Field separator.'
 | 
				
			||||||
   echo
 | 
					   echo
 | 
				
			||||||
 | 
					   echo 'CRC-16/MODBUS 20230607013934:flamp-file.k2s1base6464 D5C6'
 | 
				
			||||||
 | 
					   echo '  needs localtime file dated 20230606213934 America/New_York.'
 | 
				
			||||||
 | 
					   echo
 | 
				
			||||||
   echo 'Usage: fqt [OPTION]... TIMESTAMP... FILE...'
 | 
					   echo 'Usage: fqt [OPTION]... TIMESTAMP... FILE...'
 | 
				
			||||||
   echo 'Update a file'\''s timestamp helping recreate the hash, or queue id, in FLAMP.'
 | 
					   echo 'Update a file'\''s timestamp helping recreate the hash, or queue id, in FLAMP.'
 | 
				
			||||||
   echo
 | 
					   echo
 | 
				
			||||||
@ -145,5 +148,99 @@ UTC_TOUCH="$(date -d "$GIVEN_DATE"Z +%Y%m%d%H%M.%S)"
 | 
				
			|||||||
# YYYYmmddHHMM.SS
 | 
					# YYYYmmddHHMM.SS
 | 
				
			||||||
# 202306062139.34
 | 
					# 202306062139.34
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#echo touch -mt "$UTC_TOUCH" "$2"
 | 
					echo touch -mt "$UTC_TOUCH" "$2"
 | 
				
			||||||
touch -mt "$UTC_TOUCH" "$2"
 | 
					touch -mt "$UTC_TOUCH" "$2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function calc_crc16( )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					# Modified from
 | 
				
			||||||
 | 
					# https://github.com/onslauth/bash_crc16/blob/master/crc16-table.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# poly=0x8005
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						declare -a crc_16_table=(     
 | 
				
			||||||
 | 
						  0x0000 0xC0C1 0xC181 0x0140 0xC301 0x03C0 0x0280 0xC241
 | 
				
			||||||
 | 
						  0xC601 0x06C0 0x0780 0xC741 0x0500 0xC5C1 0xC481 0x0440
 | 
				
			||||||
 | 
						  0xCC01 0x0CC0 0x0D80 0xCD41 0x0F00 0xCFC1 0xCE81 0x0E40
 | 
				
			||||||
 | 
						  0x0A00 0xCAC1 0xCB81 0x0B40 0xC901 0x09C0 0x0880 0xC841
 | 
				
			||||||
 | 
						  0xD801 0x18C0 0x1980 0xD941 0x1B00 0xDBC1 0xDA81 0x1A40
 | 
				
			||||||
 | 
						  0x1E00 0xDEC1 0xDF81 0x1F40 0xDD01 0x1DC0 0x1C80 0xDC41
 | 
				
			||||||
 | 
						  0x1400 0xD4C1 0xD581 0x1540 0xD701 0x17C0 0x1680 0xD641
 | 
				
			||||||
 | 
						  0xD201 0x12C0 0x1380 0xD341 0x1100 0xD1C1 0xD081 0x1040
 | 
				
			||||||
 | 
						  0xF001 0x30C0 0x3180 0xF141 0x3300 0xF3C1 0xF281 0x3240
 | 
				
			||||||
 | 
						  0x3600 0xF6C1 0xF781 0x3740 0xF501 0x35C0 0x3480 0xF441
 | 
				
			||||||
 | 
						  0x3C00 0xFCC1 0xFD81 0x3D40 0xFF01 0x3FC0 0x3E80 0xFE41
 | 
				
			||||||
 | 
						  0xFA01 0x3AC0 0x3B80 0xFB41 0x3900 0xF9C1 0xF881 0x3840
 | 
				
			||||||
 | 
						  0x2800 0xE8C1 0xE981 0x2940 0xEB01 0x2BC0 0x2A80 0xEA41
 | 
				
			||||||
 | 
						  0xEE01 0x2EC0 0x2F80 0xEF41 0x2D00 0xEDC1 0xEC81 0x2C40
 | 
				
			||||||
 | 
						  0xE401 0x24C0 0x2580 0xE541 0x2700 0xE7C1 0xE681 0x2640
 | 
				
			||||||
 | 
						  0x2200 0xE2C1 0xE381 0x2340 0xE101 0x21C0 0x2080 0xE041
 | 
				
			||||||
 | 
						  0xA001 0x60C0 0x6180 0xA141 0x6300 0xA3C1 0xA281 0x6240
 | 
				
			||||||
 | 
						  0x6600 0xA6C1 0xA781 0x6740 0xA501 0x65C0 0x6480 0xA441
 | 
				
			||||||
 | 
						  0x6C00 0xACC1 0xAD81 0x6D40 0xAF01 0x6FC0 0x6E80 0xAE41
 | 
				
			||||||
 | 
						  0xAA01 0x6AC0 0x6B80 0xAB41 0x6900 0xA9C1 0xA881 0x6840
 | 
				
			||||||
 | 
						  0x7800 0xB8C1 0xB981 0x7940 0xBB01 0x7BC0 0x7A80 0xBA41
 | 
				
			||||||
 | 
						  0xBE01 0x7EC0 0x7F80 0xBF41 0x7D00 0xBDC1 0xBC81 0x7C40
 | 
				
			||||||
 | 
						  0xB401 0x74C0 0x7580 0xB541 0x7700 0xB7C1 0xB681 0x7640
 | 
				
			||||||
 | 
						  0x7200 0xB2C1 0xB381 0x7340 0xB101 0x71C0 0x7080 0xB041
 | 
				
			||||||
 | 
						  0x5000 0x90C1 0x9181 0x5140 0x9301 0x53C0 0x5280 0x9241
 | 
				
			||||||
 | 
						  0x9601 0x56C0 0x5780 0x9741 0x5500 0x95C1 0x9481 0x5440
 | 
				
			||||||
 | 
						  0x9C01 0x5CC0 0x5D80 0x9D41 0x5F00 0x9FC1 0x9E81 0x5E40
 | 
				
			||||||
 | 
						  0x5A00 0x9AC1 0x9B81 0x5B40 0x9901 0x59C0 0x5880 0x9841
 | 
				
			||||||
 | 
						  0x8801 0x48C0 0x4980 0x8941 0x4B00 0x8BC1 0x8A81 0x4A40
 | 
				
			||||||
 | 
						  0x4E00 0x8EC1 0x8F81 0x4F40 0x8D01 0x4DC0 0x4C80 0x8C41
 | 
				
			||||||
 | 
						  0x4400 0x84C1 0x8581 0x4540 0x8701 0x47C0 0x4680 0x8641
 | 
				
			||||||
 | 
						  0x8201 0x42C0 0x4380 0x8341 0x4100 0x81C1 0x8081 0x4040 
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						input="$1"
 | 
				
			||||||
 | 
						# crc=0     # for CRC-16/ARC
 | 
				
			||||||
 | 
					   crc=65535 # for CRC-16/MODBUS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						len=${#input}
 | 
				
			||||||
 | 
						for (( i = 0; i<len; i++ ))
 | 
				
			||||||
 | 
						do
 | 
				
			||||||
 | 
							char=${input:$i:1}
 | 
				
			||||||
 | 
							j=$( printf "%02x" "'$char" )
 | 
				
			||||||
 | 
							declare -i buf=0x${j}
 | 
				
			||||||
 | 
							crc=$(( crc_16_table[ ( crc ^ buf ) & 0xff ] ^ ( crc >> 8 ) ))
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						printf "%04X" $crc
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					crc16=$( calc_crc16 "123456789" )
 | 
				
			||||||
 | 
					echo "crc16 : 123456789 : $crc16"
 | 
				
			||||||
 | 
					echo "CRC-16/ARC    BB3D"
 | 
				
			||||||
 | 
					echo "CRC-16/MODBUS 4B37" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEMO=20230610151423:flamp-file.k2s1base6464
 | 
				
			||||||
 | 
					crc16=$( calc_crc16 "$DEMO" )
 | 
				
			||||||
 | 
					echo "crc16 : $DEMO : $crc16 "
 | 
				
			||||||
 | 
					echo "CRC-16/ARC    D9F6"
 | 
				
			||||||
 | 
					echo "CRC-16/MODBUS D5C6" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					# echo UTC_TOUCH "$UTC_TOUCH"
 | 
				
			||||||
 | 
					CONVERT_BACK_TO_DATE=$(echo "$UTC_TOUCH" | sed 's/\(....\)\(..\)\(..\)\(..\)\(..\)\.\(..\)/\1-\2-\3 \4:\5:\6/')
 | 
				
			||||||
 | 
					echo CONVERT_BACK_TO_DATE "$CONVERT_BACK_TO_DATE"
 | 
				
			||||||
 | 
					OFFSET=$(date -d "$CONVERT_BACK_TO_DATE" +%z)
 | 
				
			||||||
 | 
					echo "$OFFSET"
 | 
				
			||||||
 | 
					FLAMP_DATE=$(TZ=':Zulu' date -d "$CONVERT_BACK_TO_DATE $OFFSET" +%Y%m%d%H%M%S)
 | 
				
			||||||
 | 
					echo FLAMP_DATE "$FLAMP_DATE"
 | 
				
			||||||
 | 
					CONVERT_BACK_TO_DATE=$(stat -c %y flamp-file.k2s)
 | 
				
			||||||
 | 
					echo CONVERT_BACK_TO_DATE "$CONVERT_BACK_TO_DATE"
 | 
				
			||||||
 | 
					FLAMP_DATE=$(TZ=':Zulu' date -d "$CONVERT_BACK_TO_DATE" +%Y%m%d%H%M%S)
 | 
				
			||||||
 | 
					echo FLAMP_DATE "$FLAMP_DATE"
 | 
				
			||||||
 | 
					DEMO1C="$FLAMP_DATE:${2}1base6464"
 | 
				
			||||||
 | 
					crc16=$( calc_crc16 "$DEMO1C" )
 | 
				
			||||||
 | 
					echo "Compression On : crc16 : $DEMO1C : $crc16"
 | 
				
			||||||
 | 
					DEMO1NC="$FLAMP_DATE:${2}0base6464"
 | 
				
			||||||
 | 
					crc16=$( calc_crc16 "$DEMO1NC" )
 | 
				
			||||||
 | 
					echo "Compression Off : crc16 : $DEMO1NC : $crc16"
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEMO2="${1}:${2}1base6464"
 | 
				
			||||||
 | 
					crc16=$( calc_crc16 "$DEMO2" )
 | 
				
			||||||
 | 
					echo "crc16 : $DEMO2 : $crc16"
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										19
									
								
								given.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								given.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					given:
 | 
				
			||||||
 | 
					20230607013934
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-04 hours (because my computer is EDT?)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					output:
 | 
				
			||||||
 | 
					202306062139.34
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2023 06 07 01 39 34
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2023-06-07 01:39:34
 | 
				
			||||||
 | 
					2023-06-07 01:39:34-0400
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 20230607013934
 | 
				
			||||||
 | 
					GIVEN=20230607013934
 | 
				
			||||||
 | 
					GIVEN_DATE=$(echo $GIVEN | sed 's/\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1-\2-\3 \4:\5:\6/')
 | 
				
			||||||
 | 
					# 2023-06-07 01:39:34
 | 
				
			||||||
 | 
					UTC="$(date -d "$GIVEN_DATE"Z +%Y%m%d%H%M.%S)"
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user