File: dist_functions.sh

package info (click to toggle)
freespace2 24.2.0%2Brepack-3
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid
  • size: 43,740 kB
  • sloc: cpp: 595,005; ansic: 21,741; python: 1,174; sh: 457; makefile: 243; xml: 181
file content (70 lines) | stat: -rwxr-xr-x 2,091 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
function get_package_name() {
  if git describe --match 'nightly_*' --exact-match 2>/dev/null >/dev/null; then
    echo -n "$(git describe --match "nightly_*" --exact-match)"
    return
  fi

  if git describe --match 'release_*' --exact-match 2>/dev/null >/dev/null; then
    echo -n "$(git describe --match "release_*" --exact-match | sed 's/release_/fs2_open_/i')"
    return
  fi

  if [[ "$(git branch --show-current)" =~ ^test\/(.*)$ ]]; then
    echo -n "test_${BASH_REMATCH[1]}"
    return
  fi

  echo "unknown_config"
}

function get_version_name() {
  if git describe --match 'nightly_*' --exact-match 2>/dev/null >/dev/null; then
    local tag_name=$(git describe --match "nightly_*" --exact-match)

    # Use the bash regex matching for getting the relevant part of the tag name
    [[ $tag_name =~ ^nightly_(.*)$ ]]

    echo -n "${BASH_REMATCH[1]}"
    return
  fi

  if git describe --match 'release_*' --exact-match 2>/dev/null >/dev/null; then
    local tag_name=$(git describe --match "release_*" --exact-match)

    # Use the bash regex matching for getting the relevant part of the tag name
    [[ $tag_name =~ ^release_(.*)$ ]]

    echo -n "${BASH_REMATCH[1]}"
    return
  fi

  if [[ "$(git branch --show-current)" =~ ^test\/(.*)$ ]]; then
    echo -n "${BASH_REMATCH[1]}"
    return
  fi

  echo "unknown_config"
}

function upload_files_to_sftp() {
  # We need empty glob patterns to "disappear" in the for loop below since this will be run for different configurations
  # where it may be possible that some of the file patterns will not be present
  shopt -s nullglob

  echo "cd $2/" > sftp_batch
  echo "mkdir $(get_version_name)" >> sftp_batch
  # Create directory but do not cause an error if it already exists
  sshpass -e sftp -oBatchMode=no -o "StrictHostKeyChecking no" -b sftp_batch $1 || true

  echo "cd $2/$(get_version_name)/" > sftp_batch
  for file in *.tar.gz *.7z *.zip; do
    echo "put $file" >> sftp_batch
  done

  echo "bye" >> sftp_batch

  sshpass -e sftp -oBatchMode=no -o "StrictHostKeyChecking no" -b sftp_batch $1

  rm sftp_batch
}