nixenvironment 0.0.70 → 0.0.71

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,7 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency 'colorize'
27
27
  spec.add_dependency 'CFPropertyList', '= 2.2.8'
28
28
  spec.add_dependency 'pilot', '~> 1.0.0'
29
- spec.add_dependency 'nokogiri', '= 1.6.7.rc2'
29
+ spec.add_dependency 'nokogiri', '= 1.6.7.rc3'
30
+ spec.add_dependency 'net-scp'
30
31
 
31
32
  # Development only
32
33
  spec.add_development_dependency 'bundler'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nixenvironment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.70
4
+ version: 0.0.71
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-10 00:00:00.000000000 Z
12
+ date: 2015-11-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cocoapods
@@ -115,14 +115,28 @@ dependencies:
115
115
  requirements:
116
116
  - - '='
117
117
  - !ruby/object:Gem::Version
118
- version: 1.6.7.rc2
118
+ version: 1.6.7.rc3
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - '='
124
124
  - !ruby/object:Gem::Version
125
- version: 1.6.7.rc2
125
+ version: 1.6.7.rc3
126
+ - !ruby/object:Gem::Dependency
127
+ name: net-scp
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: bundler
128
142
  requirement: !ruby/object:Gem::Requirement
@@ -211,30 +225,23 @@ files:
211
225
  - bin/Config
212
226
  - bin/nixenvironment
213
227
  - gemify.sh
214
- - legacy/CleanWorkingCopy.sh
215
228
  - legacy/Deploy.sh
216
229
  - legacy/DeployAPK.py
217
- - legacy/DeployIPA.sh
218
- - legacy/DetectSCM.sh
219
230
  - legacy/GenerateCodeCoverageForXCTests.sh
220
231
  - legacy/GenerateCodeDuplicationReport.sh
221
- - legacy/LoadBuildEnvVars.sh
222
- - legacy/MakeTag.sh
223
- - legacy/SaveRevision.sh
224
232
  - legacy/UnityBuildAndroid.py
225
233
  - legacy/UnityBuildAutomationScripts/CommandLineReader.cs
226
234
  - legacy/UnityBuildAutomationScripts/NIXBuilder.cs
227
235
  - legacy/UnityBuildEnvVars.py
228
- - legacy/VerifyBinarySigning.py
229
- - legacy/svn-clean.pl
230
- - legacy/svncopy.pl
231
236
  - lib/nixenvironment.rb
232
237
  - lib/nixenvironment/archiver.rb
233
238
  - lib/nixenvironment/build_env_vars_loader.rb
234
239
  - lib/nixenvironment/cmd_executor.rb
235
240
  - lib/nixenvironment/config.rb
241
+ - lib/nixenvironment/deployer.rb
236
242
  - lib/nixenvironment/git.rb
237
243
  - lib/nixenvironment/plist.rb
244
+ - lib/nixenvironment/scm.rb
238
245
  - lib/nixenvironment/version.rb
239
246
  - lib/nixenvironment/xcodebuild.rb
240
247
  - nixenvironment.gemspec
@@ -1,69 +0,0 @@
1
- #!/bin/sh -e
2
-
3
- # Created by Yuri Govorushchenko on 22/05/2013.
4
- # Copyright 2013 nix. All rights reserved.
5
-
6
- # Script reverts all changes in working copy and removes unversioned files.
7
-
8
- currentScriptDir=$(cd "$(dirname "$0")"; pwd)
9
- SCM_TYPE=$("${currentScriptDir}/DetectSCM.sh")
10
-
11
- cleanAll=$1
12
-
13
- CLEAN_ALL=0
14
- if [ "${cleanAll}" == "all" ]; then
15
- echo "--- Clean all specified"
16
- CLEAN_ALL=1
17
- fi
18
-
19
- # Subversion
20
- if [[ "${SCM_TYPE}" = "svn" ]]; then
21
- echo "SVN working copy detected, cleaning..."
22
-
23
- # revert all changes
24
- svn revert --depth=infinity "./"
25
-
26
- # revert all changes in external directories
27
- for i in $(svn status | grep ^Performing | cut -d\' -f 2)
28
- do
29
- svn revert -R $i
30
- done
31
-
32
- # wipe out unversioned files
33
- perl "${currentScriptDir}/svn-clean.pl" "./"
34
-
35
- # git
36
- elif [[ "${SCM_TYPE}" = "git" ]]; then
37
- echo "GIT working copy detected, cleaning..."
38
-
39
- # revert all changes
40
- git reset --hard
41
-
42
- if [ ${CLEAN_ALL} -eq 1 ]; then
43
- # wipe out unversioned files (force, remove whole directories, remove ignored files)
44
- git clean -fdx
45
- else
46
- # wipe out unversioned files (force, remove whole directories)
47
- git clean -fd
48
- fi
49
-
50
- # mercurial
51
- elif [[ "${SCM_TYPE}" = "mercurial" ]]; then
52
- echo "Mercurial working copy detected, cleaning..."
53
-
54
- # revert all changes
55
- hg revert --all
56
-
57
- if [ ${CLEAN_ALL} -eq 1 ]; then
58
- # wipe out unversioned files
59
- hg --config extensions.purge= clean --all
60
- else
61
- # wipe out unversioned files (except ignored files)
62
- hg --config extensions.purge= clean
63
- fi
64
-
65
- # undefined SCM
66
- else
67
- echo "error: script must be run from working copy" 1>&2
68
- exit 1
69
- fi
data/legacy/DeployIPA.sh DELETED
@@ -1,125 +0,0 @@
1
- #!/bin/sh -e
2
-
3
- # Created by Yaroslav on 10/21/11.
4
- # Copyright 2011 nix. All rights reserved.
5
-
6
- # Script uploads IPA product. Creates appropriate subdirectories.
7
-
8
- if [[ $# < 6 ]]; then
9
- echo "usage: $0 DEPLOY_HOST DEPLOY_DIR DEPLOY_USER DEPLOY_PASSWORD DEPLOY_ITUNESCONNECT_USER DELIVER_DEPLOY"
10
- exit 1
11
- fi
12
-
13
- function zipDSYM {
14
- if [ -d "${APP_DSYM}" ]; then
15
- cd "${BUILT_PRODUCTS_DIR}"
16
- zip -r "$1" "${EXECUTABLE_NAME}.app.dSYM"
17
- cd "${currentScriptDir}"
18
- fi
19
- }
20
-
21
- DEPLOY_HOST=$1
22
- DEPLOY_DIR=$2
23
- DEPLOY_USER=$3
24
- DEPLOY_PASS=$4
25
- DEPLOY_ITUNESCONNECT_USER=$5
26
- DELIVER_DEPLOY=$6
27
-
28
- # load variables
29
- currentScriptDir=$(cd "$(dirname "$0")"; pwd)
30
- source "${currentScriptDir}/LoadBuildEnvVars.sh"
31
-
32
- checkWorkingCopyIsClean
33
-
34
- if [[ ! -f "${IPA_PRODUCT}" ]] && [[ ! -f "${IPA_PRODUCT_RESIGNED_DEVICE}" ]] && [[ ! -f "${IPA_PRODUCT_RESIGNED_ADHOC}" ]] && [[ ! -f "${IPA_PRODUCT_RESIGNED_APPSTORE}" ]]; then
35
- echo "error: Nothing to upload. Generate ipa first."
36
- exit 1
37
- fi
38
-
39
- # ********************
40
- # 1) resigned_appstore
41
- # ********************
42
-
43
- if [[ -f "${IPA_PRODUCT_RESIGNED_APPSTORE}" ]]; then
44
- LOCAL_PATH_TO_APP="/tmp/${IPA_BUNDLE_ID_RESIGNED_APPSTORE}"
45
- LOCAL_PATH_TO_BUILD="${LOCAL_PATH_TO_APP}/v.${CURRENT_APP_VERSION}_${CURRENT_BUILD_VERSION}"
46
- rm -rf "${LOCAL_PATH_TO_BUILD}" | true # cleanup in case of previous releases
47
- mkdir -p "${LOCAL_PATH_TO_BUILD}"
48
-
49
- CONFIGURATION_FULL_PATH="${LOCAL_PATH_TO_BUILD}/${NAME_FOR_DEPLOYMENT_RESIGNED_APPSTORE}"
50
- mkdir "${CONFIGURATION_FULL_PATH}"
51
- cp "${IPA_PRODUCT_RESIGNED_APPSTORE}" "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.ipa"
52
-
53
- echo "Starting deliver..."
54
-
55
- if [ "${DEPLOY_ITUNESCONNECT_USER}" == "unknown" ]; then
56
- echo "DEPLOY_ITUNESCONNECT_USER isn't specified, skipping deliver..."
57
- else
58
- if [ "${DELIVER_DEPLOY}" == 1 ]; then
59
- pilot upload -i "${IPA_PRODUCT_RESIGNED_APPSTORE}" -u "${DEPLOY_ITUNESCONNECT_USER}"
60
- else
61
- pilot upload -i "${IPA_PRODUCT_RESIGNED_APPSTORE}" -u "${DEPLOY_ITUNESCONNECT_USER}" --skip_submission
62
- fi
63
- fi
64
-
65
- zipDSYM "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.app.dSYM.zip"
66
-
67
- ${currentScriptDir}/Deploy.sh "${DEPLOY_HOST}" "${DEPLOY_DIR}" "${DEPLOY_USER}" "${DEPLOY_PASS}" "${LOCAL_PATH_TO_APP}"
68
- fi
69
-
70
- # *********
71
- # 2) device
72
- # *********
73
-
74
- if [[ -f "${IPA_PRODUCT}" ]]; then
75
- LOCAL_PATH_TO_APP="/tmp/${IPA_BUNDLE_ID}"
76
- LOCAL_PATH_TO_BUILD="${LOCAL_PATH_TO_APP}/v.${CURRENT_APP_VERSION}_${CURRENT_BUILD_VERSION}"
77
- rm -rf "${LOCAL_PATH_TO_BUILD}" | true # cleanup in case of previous releases
78
- mkdir -p "${LOCAL_PATH_TO_BUILD}"
79
-
80
- CONFIGURATION_FULL_PATH="${LOCAL_PATH_TO_BUILD}/${NAME_FOR_DEPLOYMENT}"
81
- mkdir "${CONFIGURATION_FULL_PATH}"
82
- cp "${IPA_PRODUCT}" "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.ipa"
83
-
84
- zipDSYM "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.app.dSYM.zip"
85
-
86
- ${currentScriptDir}/Deploy.sh "${DEPLOY_HOST}" "${DEPLOY_DIR}" "${DEPLOY_USER}" "${DEPLOY_PASS}" "${LOCAL_PATH_TO_APP}"
87
- fi
88
-
89
- # ******************
90
- # 3) resigned_device
91
- # ******************
92
-
93
- if [[ -f "${IPA_PRODUCT_RESIGNED_DEVICE}" ]]; then
94
- LOCAL_PATH_TO_APP="/tmp/${IPA_BUNDLE_ID_RESIGNED_DEVICE}"
95
- LOCAL_PATH_TO_BUILD="${LOCAL_PATH_TO_APP}/v.${CURRENT_APP_VERSION}_${CURRENT_BUILD_VERSION}"
96
- rm -rf "${LOCAL_PATH_TO_BUILD}" | true # cleanup in case of previous releases
97
- mkdir -p "${LOCAL_PATH_TO_BUILD}"
98
-
99
- CONFIGURATION_FULL_PATH="${LOCAL_PATH_TO_BUILD}/${NAME_FOR_DEPLOYMENT_RESIGNED_DEVICE}"
100
- mkdir "${CONFIGURATION_FULL_PATH}"
101
- cp "${IPA_PRODUCT_RESIGNED_DEVICE}" "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.ipa"
102
-
103
- zipDSYM "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.app.dSYM.zip"
104
-
105
- ${currentScriptDir}/Deploy.sh "${DEPLOY_HOST}" "${DEPLOY_DIR}" "${DEPLOY_USER}" "${DEPLOY_PASS}" "${LOCAL_PATH_TO_APP}"
106
- fi
107
-
108
- # *****************
109
- # 4) resigned_adhoc
110
- # *****************
111
-
112
- if [[ -f "${IPA_PRODUCT_RESIGNED_ADHOC}" ]]; then
113
- LOCAL_PATH_TO_APP="/tmp/${IPA_BUNDLE_ID_RESIGNED_ADHOC}"
114
- LOCAL_PATH_TO_BUILD="${LOCAL_PATH_TO_APP}/v.${CURRENT_APP_VERSION}_${CURRENT_BUILD_VERSION}"
115
- rm -rf "${LOCAL_PATH_TO_BUILD}" | true # cleanup in case of previous releases
116
- mkdir -p "${LOCAL_PATH_TO_BUILD}"
117
-
118
- CONFIGURATION_FULL_PATH="${LOCAL_PATH_TO_BUILD}/${NAME_FOR_DEPLOYMENT_RESIGNED_ADHOC}"
119
- mkdir "${CONFIGURATION_FULL_PATH}"
120
- cp "${IPA_PRODUCT_RESIGNED_ADHOC}" "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.ipa"
121
-
122
- zipDSYM "${CONFIGURATION_FULL_PATH}/${EXECUTABLE_NAME}.app.dSYM.zip"
123
-
124
- ${currentScriptDir}/Deploy.sh "${DEPLOY_HOST}" "${DEPLOY_DIR}" "${DEPLOY_USER}" "${DEPLOY_PASS}" "${LOCAL_PATH_TO_APP}"
125
- fi
data/legacy/DetectSCM.sh DELETED
@@ -1,11 +0,0 @@
1
- #!/bin/sh -e
2
-
3
- if $(svn info &>/dev/null); then
4
- echo svn
5
- elif $(git status &>/dev/null); then
6
- echo git
7
- elif $(hg status &>/dev/null); then
8
- echo mercurial
9
- else
10
- echo undefined
11
- fi
@@ -1,123 +0,0 @@
1
- #!/bin/sh -e
2
-
3
- # Created by Yuri Govorushchenko on 7/5/11.
4
- # Copyright 2010 nix. All rights reserved.
5
-
6
- # Script loads variables specified in _last_revision.sh and _last_build_vars.sh and checks that all specified files and dirs exist.
7
-
8
- #############
9
-
10
- function checkFileExists {
11
- if [ ! -f "$1" ]; then
12
- echo "error: file '$1' must exist ($2)." 1>&2
13
- exit 1
14
- fi
15
- }
16
-
17
- function checkDirExists {
18
- if [ ! -d "$1" ]; then
19
- echo "error: directory '$1' must exist ($2)." 1>&2
20
- exit 1
21
- fi
22
- }
23
-
24
- function checkAppOrIPAProductExists {
25
- if [ ! -d "${APP_PRODUCT}" ]; then
26
- if [ ! -f "${IPA_PRODUCT}" ]; then
27
- echo "error: app product directory '${APP_PRODUCT}' or ipa file '${IPA_PRODUCT}' must exist." 1>&2
28
- exit 1
29
- fi
30
- fi
31
- }
32
-
33
- #############
34
-
35
- function checkWorkingCopyIsClean {
36
- if [ ${WORKING_COPY_IS_CLEAN} -eq 1 ]; then
37
- echo "Working copy is clean. Continuing..."
38
- else
39
- echo "error: working copy must not have local modifications." 1>&2
40
- echo "You must add following files and folders to .gitignore:"
41
- echo "$(git status --porcelain)"
42
- exit 1
43
- fi
44
- }
45
-
46
- #############
47
-
48
- # set some default values to vars to catch errors quickly:
49
- REVISION="unknown_revision"
50
- PROJECT="unknown_project"
51
- BUILT_PRODUCTS_DIR="unknown_build_prodcuts_dir"
52
- OBJECTS_NORMAL_DIR="unknown_objects_normal_dir"
53
- EXECUTABLE_NAME="unknown_executable_name"
54
- APP_PRODUCT="unknown_app_product"
55
- IPA_PRODUCT="unknown_ipa_product"
56
- APP_DSYM="unknown_app_dsym"
57
- APP_INFOPLIST_FILE="unknown_app_infoplist_file"
58
- EMBEDDED_PROFILE="unknown_embedded_profile"
59
- TARGET_NAME="unknown_target_name"
60
- CONFIGURATION="unknown_configuration"
61
- SDK_NAME="unknown_sdk_name"
62
- IPA_BUNDLE_ID="unknwon_ipa_bundle_id"
63
- RESIGNED_BUNDLE_ID="unknown_resigned_bundle_id"
64
- RESIGNED_BUNDLE_NAME="unknown_resigned_bundle_name"
65
- RESIGNED_ENTITLEMENTS_PATH="unknown_resigned_entitlements_path"
66
- NAME_FOR_DEPLOYMENT="unknown_name_for_deployment"
67
-
68
- # these files should be already generated
69
- LAST_REVISION_FILE="_last_revision.sh"
70
- LAST_BUILD_VARS_FILE="_last_build_vars.sh"
71
-
72
- checkFileExists ${LAST_REVISION_FILE}
73
- checkFileExists ${LAST_BUILD_VARS_FILE}
74
-
75
- source ${LAST_REVISION_FILE}
76
- source ${LAST_BUILD_VARS_FILE}
77
-
78
- echo "REVISION = ${REVISION}"
79
- echo "MONOTONIC_REVISION = ${MONOTONIC_REVISION}"
80
- echo "PROJECT = ${PROJECT}"
81
- echo "BUILT_PRODUCTS_DIR = ${BUILT_PRODUCTS_DIR}"
82
- echo "OBJECTS_NORMAL_DIR = ${OBJECTS_NORMAL_DIR}"
83
- echo "EXECUTABLE_NAME = ${EXECUTABLE_NAME}"
84
- echo "APP_PRODUCT = ${APP_PRODUCT}"
85
- echo "WATCHKIT_APP_RELATIVE_PRODUCT = ${WATCHKIT_APP_RELATIVE_PRODUCT}"
86
- echo "WATCHKIT_EXTENSION_RELATIVE_PRODUCT = ${WATCHKIT_EXTENSION_RELATIVE_PRODUCT}"
87
- echo "WIDGET_RELATIVE_PRODUCT = ${WIDGET_RELATIVE_PRODUCT}"
88
- echo "IPA_PRODUCT = ${IPA_PRODUCT}"
89
- echo "APP_DSYM = ${APP_DSYM}"
90
- echo "APP_INFOPLIST_FILE = ${APP_INFOPLIST_FILE}"
91
- echo "EMBEDDED_PROFILE = ${EMBEDDED_PROFILE}"
92
- echo "TARGET_NAME = ${TARGET_NAME}"
93
- echo "CONFIGURATION = ${CONFIGURATION}"
94
- echo "SDK_NAME = ${SDK_NAME}"
95
- echo "IPA_BUNDLE_ID = ${IPA_BUNDLE_ID}"
96
- echo "RESIGNED_BUNDLE_ID = ${RESIGNED_BUNDLE_ID}"
97
- echo "RESIGNED_WATCHKIT_APP_BUNDLE_ID = ${RESIGNED_WATCHKIT_APP_BUNDLE_ID}"
98
- echo "RESIGNED_WATCHKIT_EXTENSION_BUNDLE_ID = ${RESIGNED_WATCHKIT_EXTENSION_BUNDLE_ID}"
99
- echo "RESIGNED_WIDGET_BUNDLE_ID = ${RESIGNED_WIDGET_BUNDLE_ID}"
100
- echo "RESIGNED_BUNDLE_NAME = ${RESIGNED_BUNDLE_NAME}"
101
- echo "RESIGNED_ENTITLEMENTS_PATH = ${RESIGNED_ENTITLEMENTS_PATH}"
102
- echo "RESIGNED_WATCHKIT_EXTENSION_ENTITLEMENTS_PATH = ${RESIGNED_WATCHKIT_EXTENSION_ENTITLEMENTS_PATH}"
103
- echo "RESIGNED_WIDGET_ENTITLEMENTS_PATH = ${RESIGNED_WIDGET_ENTITLEMENTS_PATH}"
104
- echo "NAME_FOR_DEPLOYMENT = ${NAME_FOR_DEPLOYMENT}"
105
-
106
- checkDirExists "${BUILT_PRODUCTS_DIR}" "build products dir"
107
- checkAppOrIPAProductExists
108
- checkFileExists "${APP_INFOPLIST_FILE}" "app info plist"
109
-
110
- if [ -f "${EMBEDDED_PROFILE}" ]; then
111
- # get name of embedded provisioning profile; see http://stackoverflow.com/questions/2327257/name-of-provisioning-profile-used-to-sign-an-iphone-app
112
- EMBEDDED_PROFILE_NAME=$(security cms -D -i "${EMBEDDED_PROFILE}" > /tmp/tmp.plist && /usr/libexec/PlistBuddy -c 'Print :Name' /tmp/tmp.plist)
113
- else
114
- EMBEDDED_PROFILE_NAME="SIMULATOR"
115
- fi
116
-
117
- echo "EMBEDDED_PROFILE_NAME = ${EMBEDDED_PROFILE_NAME}"
118
-
119
- CURRENT_APP_VERSION="`/usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString' "${APP_INFOPLIST_FILE}"`"
120
- CURRENT_BUILD_VERSION=${MONOTONIC_REVISION}
121
-
122
- echo "CURRENT_APP_VERSION = ${CURRENT_APP_VERSION}"
123
- echo "CURRENT_BUILD_VERSION = ${CURRENT_BUILD_VERSION}"
data/legacy/MakeTag.sh DELETED
@@ -1,94 +0,0 @@
1
- #!/bin/sh -e
2
-
3
- # Created by Yuri Govorushchenko on 11/15/10.
4
- # Copyright 2010 nix. All rights reserved.
5
-
6
- # Script creates SVN/git tag
7
- # Note that the SVN source code snapshot will be taken from the repository, not the working copy
8
-
9
- if [[ $# < 2 ]]; then
10
- echo "usage: $0 USERNAME PASSWORD (specify empty username and password in order to indicate that script must use default credentials)"
11
- exit 1
12
- fi
13
-
14
- # load variables
15
- username=$1
16
- password=$2
17
-
18
- USE_DEFAULT_CREDENTIALS=0
19
- if [ "${username}" == "" -a "${password}" == "" ]; then
20
- echo "--- Username and password are not specified, using default SCM credentials"
21
- USE_DEFAULT_CREDENTIALS=1
22
- fi
23
-
24
- currentScriptDir=$(cd "$(dirname "$0")"; pwd)
25
- source "${currentScriptDir}/LoadBuildEnvVars.sh"
26
-
27
- # make sure developer tags the same source snapshot as in the working copy
28
- checkWorkingCopyIsClean
29
-
30
- TAG_NAME="${PROJECT}-${CURRENT_APP_VERSION}b${CURRENT_BUILD_VERSION}"
31
-
32
- SCM_TYPE=$("${currentScriptDir}/DetectSCM.sh")
33
-
34
- # Subversion
35
- if [[ "${SCM_TYPE}" = "svn" ]]; then
36
- SVN_URL="$(svn info | grep '^URL:' | sed -e 's/^URL: //')"
37
- SVN_ROOT_URL="$(svn info | grep '^URL:' | sed -e 's/^URL: //' | (sed -e 's/\/branches\/.*//' | sed -e 's/\/trunk\/.*//'))"
38
- TAG_DIR="${SVN_ROOT_URL}/tags/${TAG_NAME}"
39
-
40
- echo "--- Check if tag exists at '${TAG_DIR}'"
41
-
42
- if [ ${USE_DEFAULT_CREDENTIALS} == 0 ]; then
43
- TAG_CONTENTS=$(svn list "${TAG_DIR}" --username="${username}" --password="${password}" 2>/dev/null || true)
44
- else
45
- TAG_CONTENTS=$(svn list "${TAG_DIR}" 2>/dev/null || true)
46
- fi
47
-
48
- if [ "${TAG_CONTENTS}" == "" ]; then
49
- echo "--- Make tag at '${TAG_DIR}'"
50
-
51
- if [ ${USE_DEFAULT_CREDENTIALS} == 0 ]; then
52
- perl "${currentScriptDir}/svncopy.pl" --revision "${REVISION}" --tag --verbose "${SVN_URL}" "${TAG_DIR}" --username="${username}" --password="${password}"
53
- else
54
- perl "${currentScriptDir}/svncopy.pl" --revision "${REVISION}" --tag --verbose "${SVN_URL}" "${TAG_DIR}"
55
- fi
56
-
57
- echo "--- Tag from branch '${SVN_URL}' was created at '${TAG_DIR}'"
58
- else
59
- echo "--- Tag from branch '${SVN_URL}' already exists at '${TAG_DIR}'"
60
- fi
61
-
62
- # git
63
- elif [[ "${SCM_TYPE}" = "git" ]]; then
64
- GIT_ORIGINAL_REMOTE_URL="$(git remote -v | head -n1 | sed 's/.*http/http/; s/ .*//')"
65
- GIT_ROOT_URL="$(echo $GIT_ORIGINAL_REMOTE_URL | sed 's/.*\/\///; s/ .*//')"
66
-
67
- if [ ${USE_DEFAULT_CREDENTIALS} == 0 ]; then
68
- # set remote url credentials
69
- git config remote.origin.url https://${username}:${password}@${GIT_ROOT_URL}
70
-
71
- # original username and password must be restored
72
- trap 'git config remote.origin.url "${GIT_ORIGINAL_REMOTE_URL}"' EXIT
73
- fi
74
-
75
- BRANCH_NAME="$(git rev-parse --abbrev-ref HEAD)"
76
- PROJECT_TAGS="$(git ls-remote --tags)"
77
-
78
- if [[ "${PROJECT_TAGS}" != *"${TAG_NAME}"* ]]; then
79
- git tag -a ${TAG_NAME} "${REVISION}" -m 'create tag ${TAG_NAME}'
80
- git push --tags
81
-
82
- echo "--- Tag '${TAG_NAME}' from branch '${BRANCH_NAME}' with revision '${REVISION}' was created"
83
- else
84
- echo "--- Tag '${TAG_NAME}' from branch '${BRANCH_NAME}' with revision '${REVISION}' already exists"
85
- fi
86
-
87
- # mercurial
88
- elif [[ "${SCM_TYPE}" = "mercurial" ]]; then
89
- echo "make tag doesn't work for mercurial"
90
-
91
- else
92
- echo "error: tag was not created, because script must be run from a working copy" 1>&2
93
- exit 1
94
- fi