nixenvironment 0.0.70 → 0.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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