Jim Ostrowski | 097bb2d | 2024-02-24 23:13:35 -0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | # Helper script to rename the camera calibration file when moving to new robot |
| 4 | |
| 5 | # grep isn't happy with set |
| 6 | # set -e |
| 7 | |
| 8 | |
| 9 | usage_and_exit () { |
| 10 | echo |
| 11 | echo "Usage:" |
| 12 | echo "$0 ORIG_FILENAME NEW_TEAM_NUMBER NEW_ORIN_NUMBER NEW_CAMERA_NUMBER" |
| 13 | echo |
| 14 | exit 2 |
| 15 | } |
| 16 | |
| 17 | if [[ $# -ne 4 ]]; then |
| 18 | echo "ERROR: Requires 4 parameters" |
| 19 | usage_and_exit |
| 20 | fi |
| 21 | |
| 22 | ORIG_FILENAME=$1 |
| 23 | NEW_TEAM_NUMBER=$2 |
| 24 | NEW_ORIN_NUMBER=$3 |
| 25 | NEW_CAMERA_NUMBER=$4 |
| 26 | |
| 27 | if [[ ! -x ${ORIG_FILENAME} ]]; then |
| 28 | echo "${ORIG_FILENAME} does not exist" |
| 29 | usage_and_exit |
| 30 | fi |
| 31 | |
| 32 | check_971=`echo "${NEW_TEAM_NUMBER}" | grep "971"` |
| 33 | if [[ ${check_971} == "" ]]; then |
| 34 | echo "NEW_TEAM_NUMBER (${NEW_TEAM_NUMBER}) does not contain '971'" |
| 35 | usage_and_exit |
| 36 | fi |
| 37 | |
| 38 | if [[ ${NEW_ORIN_NUMBER} != 1 && ${NEW_ORIN_NUMBER} != 2 ]]; then |
| 39 | echo "NEW_ORIN_NUMBER (${NEW_ORIN_NUMBER}) must be either 1 or 2" |
| 40 | usage_and_exit |
| 41 | fi |
| 42 | |
| 43 | if [[ ${NEW_CAMERA_NUMBER} != 0 && ${NEW_CAMERA_NUMBER} != 1 ]]; then |
| 44 | echo "NEW_CAMERA_NUMBER (${NEW_CAMERA_NUMBER}) must be either 0 or 1" |
| 45 | usage_and_exit |
| 46 | fi |
| 47 | |
| 48 | # Extract parts of the filename, based on just the basename |
| 49 | # This assumes filenames of the form: |
| 50 | # calibration_orin-971-1-0_cam-24-01_2024-02-07_20-11-35.566609408.json |
| 51 | IFS='_' read -r -a name_parts <<< `basename "${ORIG_FILENAME}"` |
| 52 | |
| 53 | echo "For ${ORIG_FILENAME}:" |
| 54 | for element in "${name_parts[@]}" |
| 55 | do |
| 56 | echo "$element" |
| 57 | done |
| 58 | |
| 59 | # Rename file based on this new info (be sure to handle paths properly) |
| 60 | NEW_FILENAME=`dirname ${ORIG_FILENAME}`"/${name_parts[0]}_orin-${NEW_TEAM_NUMBER}-${NEW_ORIN_NUMBER}-${NEW_CAMERA_NUMBER}_${name_parts[2]}_${name_parts[3]}_${name_parts[4]}" |
| 61 | |
| 62 | echo |
| 63 | echo "For camera id: ${name_parts[2]}" |
| 64 | echo "Renaming from:" |
| 65 | echo "${ORIG_FILENAME} to: " |
| 66 | echo "${NEW_FILENAME}" |
| 67 | echo |
| 68 | echo "and changing from " |
| 69 | echo "${name_parts[1]} to: " |
| 70 | echo "orin-${NEW_TEAM_NUMBER}-${NEW_ORIN_NUMBER}-${NEW_CAMERA_NUMBER}" |
| 71 | echo |
| 72 | |
| 73 | mv ${ORIG_FILENAME} ${NEW_FILENAME} |
| 74 | |
| 75 | |
| 76 | echo "REPLACING ORIN_NUMBER" |
| 77 | sed -i s/orin./orin${NEW_ORIN_NUMBER}/ ${NEW_FILENAME} |
| 78 | |
| 79 | echo "Replacing TEAM NUMBER" |
| 80 | sed -i s/\"team_number\"\:\ [1-9]*\,/\"team_number\"\:\ ${NEW_TEAM_NUMBER},/ ${NEW_FILENAME} |
| 81 | |
| 82 | echo "REPLACING CAMERA_NUMBER" |
| 83 | sed -i s/\"camera_number\"\:\ [0-9]/\"camera_number\"\:\ ${NEW_CAMERA_NUMBER}/ ${NEW_FILENAME} |
| 84 | |
| 85 | |
| 86 | |