Script updating timestamp
FLAMP Queue Touch For timezone offset making FLAMP hash match.
This commit is contained in:
commit
37945e85ec
149
fqt
Normal file
149
fqt
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# fqt - FLAMP Queue Touch'
|
||||||
|
#
|
||||||
|
# Simplify matching queue ID in FLAMP by changing file's date.
|
||||||
|
|
||||||
|
Help()
|
||||||
|
{
|
||||||
|
echo 'Usage: fqt \[OPTION\]... TIMESTAMP... FILE...'
|
||||||
|
echo 'Update a file'\''s timestamp helping recreate the hash, or queue id, in FLAMP.'
|
||||||
|
echo
|
||||||
|
echo 'options:'
|
||||||
|
echo ' -h display this help and exit'
|
||||||
|
echo ' --help display longer help and exit'
|
||||||
|
echo ' -v, --version output version information and exit'
|
||||||
|
echo
|
||||||
|
echo 'fqt is short for FLAMP Queue Touch'
|
||||||
|
}
|
||||||
|
|
||||||
|
LongHelp()
|
||||||
|
{
|
||||||
|
echo 'Example'
|
||||||
|
echo ' FLAMP text shown in FLDIGI:'
|
||||||
|
echo '/// BEGIN ///'
|
||||||
|
echo 'QST DE N0CALL'
|
||||||
|
echo
|
||||||
|
echo '<PROG 18 588E>{D5C6}FLAMP 2.2.07'
|
||||||
|
echo '<FILE 35 EEAC>{D5C6}20230610151423:flamp-file.k2s'
|
||||||
|
echo ' ^^^^^^^^^^^^^^--> --> --> --> Use these numbers -->\'
|
||||||
|
echo '<ID 26 6D1A>{D5C6}N0CALL Demonstration'
|
||||||
|
echo '<SIZE 13 4B1B>{D5C6}45 1 64 |'
|
||||||
|
echo '<DATA 53 5A03>{D5C6:1}[b64:start]VGhpcyBpcyBhIHRlc3QuCg== v'
|
||||||
|
echo '[b64:end]'
|
||||||
|
echo '<CNTL 10 2CBA>{D5C6:EOF} |'
|
||||||
|
echo '<CNTL 10 8CB6>{D5C6:EOT} v'
|
||||||
|
echo
|
||||||
|
echo 'QST DE N0CALL K |'
|
||||||
|
echo '/// END /// v'
|
||||||
|
echo ' vvvvvvvvvvvvvv <-- <-- <-- <-- <-- <-- <-- Here <-- <--/'
|
||||||
|
echo ' command: fqt 20230607013934 flamp-file.k2s'
|
||||||
|
echo
|
||||||
|
echo 'Tips'
|
||||||
|
echo ' If hash doesn'\''t match, try to'
|
||||||
|
echo ' Remove and re-Add the file in FLAMP'
|
||||||
|
echo ' Toggle Comp check box (usually compression, unless file is small)'
|
||||||
|
echo ' Change base64 (usually base64)'
|
||||||
|
echo ' Change Blk size (usually 64)'
|
||||||
|
echo
|
||||||
|
echo 'Information on hash in documentation'
|
||||||
|
echo 'FLAMP Amateur Multicast Protocol (AMP-2) - Version 3.0'
|
||||||
|
echo 'available at: <http://www.w1hkj.com/files/flamp/Amp-2.V3.0.Protocol.pdf>'
|
||||||
|
echo
|
||||||
|
echo ' 20130316010524:ShortMessage2.txt0base12896'
|
||||||
|
echo
|
||||||
|
echo ' Example format:'
|
||||||
|
echo
|
||||||
|
echo ' |20130316010524:ShortMessage2.txt|0|base128|96|'
|
||||||
|
echo ' | DTS : FN |C| B |BS|'
|
||||||
|
echo
|
||||||
|
echo ' DTS = Date/Time Stamp'
|
||||||
|
echo ' FN = File Name'
|
||||||
|
echo ' C = Compression 1=ON,0=OFF'
|
||||||
|
echo ' B = Base Conversion (base64, base128, or base256)'
|
||||||
|
echo ' BS = Block Size, 1 or more characters'
|
||||||
|
echo ' | = Field separator.'
|
||||||
|
echo
|
||||||
|
echo 'Usage: fqt [OPTION]... TIMESTAMP... FILE...'
|
||||||
|
echo 'Update a file'\''s timestamp helping recreate the hash, or queue id, in FLAMP.'
|
||||||
|
echo
|
||||||
|
echo 'TIMESTAMP is the string appearing in FLAMP header'
|
||||||
|
echo 'and is formatted YYYYmmddHHMMSS '
|
||||||
|
echo
|
||||||
|
echo 'A FILE argument that does not exist is created empty. (Not helpful.)'
|
||||||
|
echo
|
||||||
|
echo 'options:'
|
||||||
|
echo ' -h display short help and exit'
|
||||||
|
echo ' --help display this longer help and exit'
|
||||||
|
echo ' -v, --version output version information and exit'
|
||||||
|
echo
|
||||||
|
echo 'This should work across timezones and across Daylight Savings times.'
|
||||||
|
echo
|
||||||
|
echo 'fqt is short for FLAMP Queue Touch'
|
||||||
|
}
|
||||||
|
|
||||||
|
Version()
|
||||||
|
{
|
||||||
|
echo 'fqt - FLAMP Queue Touch'
|
||||||
|
echo 'Not Copyrighted'
|
||||||
|
echo 'No License'
|
||||||
|
echo 'This is free software: you are free to change and redistribute it.'
|
||||||
|
echo 'There is NO WARRANTY, to the extent permitted by law.'
|
||||||
|
echo
|
||||||
|
echo 'Use at your own risk!'
|
||||||
|
echo
|
||||||
|
echo 'Written by a ham.'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note that we use "$@" to let each command-line parameter expand to a
|
||||||
|
# separate word. The quotes around "$@" are essential!
|
||||||
|
# We need TEMP as the 'eval set --' would nuke the return value of getopt.
|
||||||
|
if ! TEMP=$(getopt -o '::hv' --long 'help,version' -n 'fqt' -- "$@") ;
|
||||||
|
then
|
||||||
|
echo 'Unexpected input. Terminating...' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Note the quotes around "$TEMP": they are essential!
|
||||||
|
eval set -- "$TEMP"
|
||||||
|
unset TEMP
|
||||||
|
|
||||||
|
|
||||||
|
# getopt -l "help" -a -o "" -- "$@"
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
'-h')
|
||||||
|
Help
|
||||||
|
exit;;
|
||||||
|
'--help')
|
||||||
|
LongHelp
|
||||||
|
exit;;
|
||||||
|
'-v'|'--version')
|
||||||
|
Version
|
||||||
|
exit;;
|
||||||
|
'--') # Useless for this file?
|
||||||
|
shift
|
||||||
|
break;;
|
||||||
|
*) # Invalid option
|
||||||
|
echo 'Error: Invalid option'
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
GIVEN="$1"
|
||||||
|
#echo "$GIVEN"
|
||||||
|
# YYYYmmddHHMMSS
|
||||||
|
# 20230607013934
|
||||||
|
|
||||||
|
GIVEN_DATE=$(echo "$GIVEN" | sed 's/\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1-\2-\3 \4:\5:\6/')
|
||||||
|
#echo "$GIVEN_DATE"
|
||||||
|
# YYYY-mm-dd HH:MM:SS
|
||||||
|
# 2023-06-07 01:39:34
|
||||||
|
|
||||||
|
UTC_TOUCH="$(date -d "$GIVEN_DATE"Z +%Y%m%d%H%M.%S)"
|
||||||
|
#echo "$UTC_TOUCH"
|
||||||
|
# YYYYmmddHHMM.SS
|
||||||
|
# 202306062139.34
|
||||||
|
|
||||||
|
#echo touch -m "$UTC_TOUCH" "$2"
|
||||||
|
touch -m "$UTC_TOUCH" "$2"
|
Loading…
Reference in New Issue
Block a user