system-clients 3.2.64 → 3.2.65-1
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.
- package/package.json +1 -1
- package/src/components/Main.vue +805 -791
- package/src/filiale/qianneng/ModifyPw.vue +107 -107
- package/src/filiale/qianneng/system.js +8 -8
- package/src/filiale/yuchuan/Main.vue +91 -0
- package/src/plugins/validation.js +15 -15
- package/static/newStyle/jingwei.png +0 -0
- package/.gradle/6.1/executionHistory/executionHistory.bin +0 -0
- package/.gradle/6.1/executionHistory/executionHistory.lock +0 -0
- package/.gradle/6.1/fileChanges/last-build.bin +0 -0
- package/.gradle/6.1/fileHashes/fileHashes.bin +0 -0
- package/.gradle/6.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/6.1/gc.properties +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/.gradle/checksums/checksums.lock +0 -0
- package/.gradle/vcs-1/gc.properties +0 -0
- package/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/gradlew +0 -183
- package/gradlew.bat +0 -100
@@ -1,107 +1,107 @@
|
|
1
|
-
<template>
|
2
|
-
<div>
|
3
|
-
<validator name="v">
|
4
|
-
<modal :show.sync="show" v-ref:modal backdrop="false">
|
5
|
-
<header slot="modal-header" class="modal-header">
|
6
|
-
<button type="button" class="close" @click="rest"><span>×</span></button>
|
7
|
-
<h4 class="modal-title">修改密码</h4>
|
8
|
-
</header>
|
9
|
-
<article slot="modal-body" class="modal-body modifystyle auto form-horizontal">
|
10
|
-
<div class="has-feedback form-group"
|
11
|
-
:class="{'has-warning':$v.password.required,'has-error': $v.password.required,
|
12
|
-
'has-success':!$v.password.required}">
|
13
|
-
<label for="password" class="col-sm-4 col-sm-offset-1 control-label">原始密码: </label>
|
14
|
-
<div class="col-sm-4">
|
15
|
-
<input type="password" v-model="deliver.password" class="form-control" id="password" v-validate:password="{ required: true}">
|
16
|
-
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.password.required"></span>
|
17
|
-
<span v-if="$v.password.required">不能为空</span>
|
18
|
-
</div>
|
19
|
-
</div>
|
20
|
-
<div class="has-feedback form-group"
|
21
|
-
:class="{'has-warning':$v.newpassword.required,'has-error':($v.newpassword.numbersAndLetter8to16 || $v.newpassword.minlength)&& !$v.newpassword.required && !$v.newpassword.chinesePassword,
|
22
|
-
'has-success': !$v.newpassword.required && !$v.newpassword.numbersAndLetter8to16&&!$v.newpassword.minlength && !$v.newpassword.chinesePassword}">
|
23
|
-
<label for="newpassword" class="col-sm-4 col-sm-offset-1 control-label">新的密码: </label>
|
24
|
-
<div class="col-sm-4">
|
25
|
-
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true, numbersAndLetter8to16: true, minlength: 6,chinesePassword: true}'>
|
26
|
-
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.newpassword.required && !$v.newpassword.minlength && !($v.newpassword.numbersAndLetter8to16 && !($v.newpassword.required)) && !($v.newpassword.chinesePassword) "></span>
|
27
|
-
<span v-if="$v.newpassword.required">不能为空</span>
|
28
|
-
<span v-if="($v.newpassword.numbersAndLetter8to16||$v.newpassword.minlength) && !($v.newpassword.required&&$v.newpassword.minlength)">密码必须是8~16位数字与字母组合</span>
|
29
|
-
<span v-if="$v.newpassword.chinesePassword">密码不能包含中文</span>
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
<div class="has-feedback form-group"
|
33
|
-
:class="{'has-warning':$v.affirmpassword.required,'has-error':$v.affirmpassword.equalValid && !($v.affirmpassword.required),
|
34
|
-
'has-success': !$v.affirmpassword.required && !($v.affirmpassword.equalValid && !($v.affirmpassword.required))}">
|
35
|
-
<label for="affirmpassword" class="col-sm-4 col-sm-offset-1 control-label">确认密码: </label>
|
36
|
-
<div class="col-sm-4">
|
37
|
-
<input type="password" v-model="deliver.affirmpassword" class="form-control" id="affirmpassword" v-validate:affirmpassword="{ required: true, equalValid: deliver.newpassword }">
|
38
|
-
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.affirmpassword.required && !($v.affirmpassword.equalValid && !($v.affirmpassword.required))"></span>
|
39
|
-
<span v-if="$v.affirmpassword.required">不能为空</span>
|
40
|
-
<span v-if="$v.affirmpassword.equalValid && !($v.affirmpassword.required)">两次密码不一致 !!</span>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
</article>
|
44
|
-
|
45
|
-
<footer slot="modal-footer" class="modal-footer">
|
46
|
-
<button type="button" class="btn btn-success" @click='confirm' :disabled="!$v.valid">确认</button>
|
47
|
-
<button type="button" class="btn btn-default" @click='rest'>取消</button>
|
48
|
-
</footer>
|
49
|
-
</modal>
|
50
|
-
</validator>
|
51
|
-
</div>
|
52
|
-
|
53
|
-
|
54
|
-
</template>
|
55
|
-
<script>
|
56
|
-
import co from 'co'
|
57
|
-
import validator from '../../plugins/validation';
|
58
|
-
|
59
|
-
let saveGen = function * (self) {
|
60
|
-
self.deliver.ename = self.functions.ename
|
61
|
-
// let res = yield self.$post('rs/user/entity', {data: self.deliver})
|
62
|
-
// let res = yield self.$post('rs/db/modifypassword', {data: self.deliver})
|
63
|
-
// let res = yield self.$resetpost('/rs/db/modifypwd', {data: self.deliver})
|
64
|
-
// Util.f.password = self.deliver.newpassword
|
65
|
-
let res = yield self.$resetpost('/rs/user/modifypwd', {data: self.deliver })
|
66
|
-
self.$login.f.password = self.deliver.newpassword
|
67
|
-
if (res.data) {
|
68
|
-
self.deliver.password = ''
|
69
|
-
self.deliver.newpassword = ''
|
70
|
-
self.deliver.affirmpassword = ''
|
71
|
-
self.show = false
|
72
|
-
}
|
73
|
-
}
|
74
|
-
export default {
|
75
|
-
title: '系统管理-密码修改',
|
76
|
-
data () {
|
77
|
-
return {
|
78
|
-
deliver: {
|
79
|
-
password: '',
|
80
|
-
newpassword: '',
|
81
|
-
affirmpassword: ''
|
82
|
-
},
|
83
|
-
functions: this.$login.f
|
84
|
-
}
|
85
|
-
},
|
86
|
-
props: ['show'],
|
87
|
-
methods: {
|
88
|
-
confirm () {
|
89
|
-
let gen = saveGen(this)
|
90
|
-
co(gen)
|
91
|
-
},
|
92
|
-
rest () {
|
93
|
-
this.show = false
|
94
|
-
this.deliver = {password: '', newpassword: '', affirmpassword: ''}
|
95
|
-
}
|
96
|
-
}
|
97
|
-
}
|
98
|
-
</script>
|
99
|
-
<style>
|
100
|
-
/*修改密码body界面样式*/
|
101
|
-
.modifystyle {
|
102
|
-
background: #FCFEEE;
|
103
|
-
}
|
104
|
-
.modifystyle span{
|
105
|
-
color: red;
|
106
|
-
}
|
107
|
-
</style>
|
1
|
+
<template>
|
2
|
+
<div>
|
3
|
+
<validator name="v">
|
4
|
+
<modal :show.sync="show" v-ref:modal backdrop="false">
|
5
|
+
<header slot="modal-header" class="modal-header">
|
6
|
+
<button type="button" class="close" @click="rest"><span>×</span></button>
|
7
|
+
<h4 class="modal-title">修改密码</h4>
|
8
|
+
</header>
|
9
|
+
<article slot="modal-body" class="modal-body modifystyle auto form-horizontal">
|
10
|
+
<div class="has-feedback form-group"
|
11
|
+
:class="{'has-warning':$v.password.required,'has-error': $v.password.required,
|
12
|
+
'has-success':!$v.password.required}">
|
13
|
+
<label for="password" class="col-sm-4 col-sm-offset-1 control-label">原始密码: </label>
|
14
|
+
<div class="col-sm-4">
|
15
|
+
<input type="password" v-model="deliver.password" class="form-control" id="password" v-validate:password="{ required: true}">
|
16
|
+
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.password.required"></span>
|
17
|
+
<span v-if="$v.password.required">不能为空</span>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
<div class="has-feedback form-group"
|
21
|
+
:class="{'has-warning':$v.newpassword.required,'has-error':($v.newpassword.numbersAndLetter8to16 || $v.newpassword.minlength)&& !$v.newpassword.required && !$v.newpassword.chinesePassword,
|
22
|
+
'has-success': !$v.newpassword.required && !$v.newpassword.numbersAndLetter8to16&&!$v.newpassword.minlength && !$v.newpassword.chinesePassword}">
|
23
|
+
<label for="newpassword" class="col-sm-4 col-sm-offset-1 control-label">新的密码: </label>
|
24
|
+
<div class="col-sm-4">
|
25
|
+
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true, numbersAndLetter8to16: true, minlength: 6,chinesePassword: true}'>
|
26
|
+
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.newpassword.required && !$v.newpassword.minlength && !($v.newpassword.numbersAndLetter8to16 && !($v.newpassword.required)) && !($v.newpassword.chinesePassword) "></span>
|
27
|
+
<span v-if="$v.newpassword.required">不能为空</span>
|
28
|
+
<span v-if="($v.newpassword.numbersAndLetter8to16||$v.newpassword.minlength) && !($v.newpassword.required&&$v.newpassword.minlength)">密码必须是8~16位数字与字母组合</span>
|
29
|
+
<span v-if="$v.newpassword.chinesePassword">密码不能包含中文</span>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<div class="has-feedback form-group"
|
33
|
+
:class="{'has-warning':$v.affirmpassword.required,'has-error':$v.affirmpassword.equalValid && !($v.affirmpassword.required),
|
34
|
+
'has-success': !$v.affirmpassword.required && !($v.affirmpassword.equalValid && !($v.affirmpassword.required))}">
|
35
|
+
<label for="affirmpassword" class="col-sm-4 col-sm-offset-1 control-label">确认密码: </label>
|
36
|
+
<div class="col-sm-4">
|
37
|
+
<input type="password" v-model="deliver.affirmpassword" class="form-control" id="affirmpassword" v-validate:affirmpassword="{ required: true, equalValid: deliver.newpassword }">
|
38
|
+
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.affirmpassword.required && !($v.affirmpassword.equalValid && !($v.affirmpassword.required))"></span>
|
39
|
+
<span v-if="$v.affirmpassword.required">不能为空</span>
|
40
|
+
<span v-if="$v.affirmpassword.equalValid && !($v.affirmpassword.required)">两次密码不一致 !!</span>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
</article>
|
44
|
+
|
45
|
+
<footer slot="modal-footer" class="modal-footer">
|
46
|
+
<button type="button" class="btn btn-success" @click='confirm' :disabled="!$v.valid">确认</button>
|
47
|
+
<button type="button" class="btn btn-default" @click='rest'>取消</button>
|
48
|
+
</footer>
|
49
|
+
</modal>
|
50
|
+
</validator>
|
51
|
+
</div>
|
52
|
+
|
53
|
+
|
54
|
+
</template>
|
55
|
+
<script>
|
56
|
+
import co from 'co'
|
57
|
+
import validator from '../../plugins/validation';
|
58
|
+
|
59
|
+
let saveGen = function * (self) {
|
60
|
+
self.deliver.ename = self.functions.ename
|
61
|
+
// let res = yield self.$post('rs/user/entity', {data: self.deliver})
|
62
|
+
// let res = yield self.$post('rs/db/modifypassword', {data: self.deliver})
|
63
|
+
// let res = yield self.$resetpost('/rs/db/modifypwd', {data: self.deliver})
|
64
|
+
// Util.f.password = self.deliver.newpassword
|
65
|
+
let res = yield self.$resetpost('/rs/user/modifypwd', {data: self.deliver })
|
66
|
+
self.$login.f.password = self.deliver.newpassword
|
67
|
+
if (res.data) {
|
68
|
+
self.deliver.password = ''
|
69
|
+
self.deliver.newpassword = ''
|
70
|
+
self.deliver.affirmpassword = ''
|
71
|
+
self.show = false
|
72
|
+
}
|
73
|
+
}
|
74
|
+
export default {
|
75
|
+
title: '系统管理-密码修改',
|
76
|
+
data () {
|
77
|
+
return {
|
78
|
+
deliver: {
|
79
|
+
password: '',
|
80
|
+
newpassword: '',
|
81
|
+
affirmpassword: ''
|
82
|
+
},
|
83
|
+
functions: this.$login.f
|
84
|
+
}
|
85
|
+
},
|
86
|
+
props: ['show'],
|
87
|
+
methods: {
|
88
|
+
confirm () {
|
89
|
+
let gen = saveGen(this)
|
90
|
+
co(gen)
|
91
|
+
},
|
92
|
+
rest () {
|
93
|
+
this.show = false
|
94
|
+
this.deliver = {password: '', newpassword: '', affirmpassword: ''}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
</script>
|
99
|
+
<style>
|
100
|
+
/*修改密码body界面样式*/
|
101
|
+
.modifystyle {
|
102
|
+
background: #FCFEEE;
|
103
|
+
}
|
104
|
+
.modifystyle span{
|
105
|
+
color: red;
|
106
|
+
}
|
107
|
+
</style>
|
@@ -1,8 +1,8 @@
|
|
1
|
-
// 分公司特殊组件页面注册
|
2
|
-
|
3
|
-
let specialComp = {
|
4
|
-
// 潜能密码改下
|
5
|
-
'modify-pw': (resolve) => { require(['./ModifyPw.vue'], resolve) },
|
6
|
-
'home-page': (resolve) => require(['./Main'], resolve)
|
7
|
-
}
|
8
|
-
exports.specialComp = specialComp
|
1
|
+
// 分公司特殊组件页面注册
|
2
|
+
|
3
|
+
let specialComp = {
|
4
|
+
// 潜能密码改下
|
5
|
+
// 'modify-pw': (resolve) => { require(['./ModifyPw.vue'], resolve) },
|
6
|
+
'home-page': (resolve) => require(['./Main'], resolve)
|
7
|
+
}
|
8
|
+
exports.specialComp = specialComp
|
@@ -235,6 +235,9 @@ export default {
|
|
235
235
|
}
|
236
236
|
},
|
237
237
|
ready() {
|
238
|
+
//使用socket发送代办消息提醒
|
239
|
+
vue.prototype.$connectNumber = this.connectNumber
|
240
|
+
this.initWebSocket()
|
238
241
|
getwartermakr(this);
|
239
242
|
let component = this.$login.getUrlCompileParames('component')
|
240
243
|
if (component) {
|
@@ -284,6 +287,94 @@ export default {
|
|
284
287
|
this.functions.f_role_name && this.functions.f_role_name.includes(this.config.msgRole) && this.config.isTip && this.getOrderList()
|
285
288
|
},
|
286
289
|
methods: {
|
290
|
+
// 清除
|
291
|
+
reset () {
|
292
|
+
clearTimeout(this.timeoutObj)
|
293
|
+
clearTimeout(this.serverTimeoutObj)
|
294
|
+
},
|
295
|
+
//每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息
|
296
|
+
//如果服务端在一定时间内没有收到信息,就认为客户端断开了,服务端就会断开连接
|
297
|
+
// 发送心跳--确保连接有效
|
298
|
+
start () {
|
299
|
+
// 重置
|
300
|
+
vue.prototype.$connectNumber = this.connectNumber // 重置重连次数
|
301
|
+
this.timeoutObj = setTimeout(() => {
|
302
|
+
this.$socket.send('ping')
|
303
|
+
console.log('ping!')
|
304
|
+
this.serverTimeoutObj = setTimeout(() => {
|
305
|
+
this.$socket.close()
|
306
|
+
}, this.timeout)
|
307
|
+
}, this.timeout)
|
308
|
+
},
|
309
|
+
// 重连
|
310
|
+
reconnect () {
|
311
|
+
if (this.lockReconnect) return
|
312
|
+
// if (this.$connectNumber <= 0) {
|
313
|
+
// vue.showMessage('连接已断开,将无法接收消息,请重新登录', ['confirm']).then((res) => {
|
314
|
+
// if (res === 'confirm') {
|
315
|
+
// location.reload()
|
316
|
+
// }
|
317
|
+
// })
|
318
|
+
// return
|
319
|
+
// }
|
320
|
+
// this.$connectNumber--
|
321
|
+
setTimeout(() => {
|
322
|
+
console.log('连接异常,尝试重新连接。。。。')
|
323
|
+
this.initWebSocket()
|
324
|
+
this.lockReconnect = false
|
325
|
+
}, 1000 * 60)
|
326
|
+
},
|
327
|
+
// 初始化
|
328
|
+
initWebSocket () {
|
329
|
+
let path = `ws://${location.host}/ws?token=${this.$login.f.id}`
|
330
|
+
try {
|
331
|
+
if ('WebSocket' in window) {
|
332
|
+
// 创建对象
|
333
|
+
vue.prototype.$socket = new WebSocket(path)
|
334
|
+
} else {
|
335
|
+
this.$showMessage('您的浏览器不支持websocket的协议,建议使用新版谷歌浏览器,请勿使用IE浏览器,360浏览器请使用极速模式,不要使用兼容模式!"')
|
336
|
+
}
|
337
|
+
} catch (e) {
|
338
|
+
this.reconnect()
|
339
|
+
}
|
340
|
+
|
341
|
+
this.$socket.onopen = this.onOpen // 连接成功
|
342
|
+
this.$socket.onmessage = this.onMessage // 收到消息时回调
|
343
|
+
this.$socket.onclose = this.onClose // 连接关闭时回调
|
344
|
+
this.$socket.onerror = this.onError // 通讯异常
|
345
|
+
},
|
346
|
+
// 通讯异常
|
347
|
+
onError () {
|
348
|
+
console.log('通讯异常')
|
349
|
+
this.reconnect()
|
350
|
+
},
|
351
|
+
// 连接成功
|
352
|
+
onOpen () {
|
353
|
+
console.log('webSocket连接成功')
|
354
|
+
this.start()//每十秒发送心跳包,确保连接状态有效
|
355
|
+
},
|
356
|
+
// 收到消息时回调函数
|
357
|
+
onMessage (event) {
|
358
|
+
if (event.data === 'pong') { //建立心跳机制发送ping,返回pong
|
359
|
+
this.reset() // 重置心跳
|
360
|
+
this.start() // 重新开始心跳
|
361
|
+
return
|
362
|
+
}
|
363
|
+
//不是pong消息,就是服务器返回的消息(提示消息)
|
364
|
+
|
365
|
+
let data = JSON.parse(event.data)
|
366
|
+
console.log('收到消息', data)
|
367
|
+
//向所有子组件广播一个名为'onMessage'的事件,并传递一个数据参数'data'。
|
368
|
+
this.$broadcast('onMessage', data)
|
369
|
+
//作用是显示一个消息。
|
370
|
+
this.$showMessage(data.message)
|
371
|
+
},
|
372
|
+
// 关闭连接时回调函数
|
373
|
+
onClose () {
|
374
|
+
console.log('webSocket连接断开')
|
375
|
+
this.reset()
|
376
|
+
this.reconnect() // 重连
|
377
|
+
},
|
287
378
|
getOrderList(){
|
288
379
|
let times = this.config.times * 60 * 1000
|
289
380
|
console.log("=定时提示间隔=", times)
|
@@ -1,15 +1,15 @@
|
|
1
|
-
import Vue from 'vue'
|
2
|
-
import Validator from 'vue-validator'
|
3
|
-
Vue.use(Validator)
|
4
|
-
//密码强度验证器(必须为为大小写字母、阿拉伯数字、字符)
|
5
|
-
Vue.validator('strongpassword', function (val) {
|
6
|
-
return /^(?:(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).*$/.test(val)
|
7
|
-
});
|
8
|
-
Vue.validator('chinesePassword', function (val) {
|
9
|
-
var testBealoon=/.*?[\u4E00-\u9FFF]+.*$/.test(val)
|
10
|
-
return !(/.*?[\u4E00-\u9FFF]+.*$/.test(val))
|
11
|
-
});
|
12
|
-
// 潜能要求8~16位数字字母组合;
|
13
|
-
Vue.validator('numbersAndLetter8to16', function (val) {
|
14
|
-
return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(val)
|
15
|
-
});
|
1
|
+
import Vue from 'vue'
|
2
|
+
import Validator from 'vue-validator'
|
3
|
+
Vue.use(Validator)
|
4
|
+
//密码强度验证器(必须为为大小写字母、阿拉伯数字、字符)
|
5
|
+
Vue.validator('strongpassword', function (val) {
|
6
|
+
return /^(?:(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).*$/.test(val)
|
7
|
+
});
|
8
|
+
Vue.validator('chinesePassword', function (val) {
|
9
|
+
var testBealoon=/.*?[\u4E00-\u9FFF]+.*$/.test(val)
|
10
|
+
return !(/.*?[\u4E00-\u9FFF]+.*$/.test(val))
|
11
|
+
});
|
12
|
+
// 潜能要求8~16位数字字母组合;
|
13
|
+
Vue.validator('numbersAndLetter8to16', function (val) {
|
14
|
+
return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(val)
|
15
|
+
});
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
Binary file
|
package/gradlew
DELETED
@@ -1,183 +0,0 @@
|
|
1
|
-
#!/usr/bin/env sh
|
2
|
-
|
3
|
-
#
|
4
|
-
# Copyright 2015 the original author or authors.
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
##############################################################################
|
20
|
-
##
|
21
|
-
## Gradle start up script for UN*X
|
22
|
-
##
|
23
|
-
##############################################################################
|
24
|
-
|
25
|
-
# Attempt to set APP_HOME
|
26
|
-
# Resolve links: $0 may be a link
|
27
|
-
PRG="$0"
|
28
|
-
# Need this for relative symlinks.
|
29
|
-
while [ -h "$PRG" ] ; do
|
30
|
-
ls=`ls -ld "$PRG"`
|
31
|
-
link=`expr "$ls" : '.*-> \(.*\)$'`
|
32
|
-
if expr "$link" : '/.*' > /dev/null; then
|
33
|
-
PRG="$link"
|
34
|
-
else
|
35
|
-
PRG=`dirname "$PRG"`"/$link"
|
36
|
-
fi
|
37
|
-
done
|
38
|
-
SAVED="`pwd`"
|
39
|
-
cd "`dirname \"$PRG\"`/" >/dev/null
|
40
|
-
APP_HOME="`pwd -P`"
|
41
|
-
cd "$SAVED" >/dev/null
|
42
|
-
|
43
|
-
APP_NAME="Gradle"
|
44
|
-
APP_BASE_NAME=`basename "$0"`
|
45
|
-
|
46
|
-
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
47
|
-
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
48
|
-
|
49
|
-
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
50
|
-
MAX_FD="maximum"
|
51
|
-
|
52
|
-
warn () {
|
53
|
-
echo "$*"
|
54
|
-
}
|
55
|
-
|
56
|
-
die () {
|
57
|
-
echo
|
58
|
-
echo "$*"
|
59
|
-
echo
|
60
|
-
exit 1
|
61
|
-
}
|
62
|
-
|
63
|
-
# OS specific support (must be 'true' or 'false').
|
64
|
-
cygwin=false
|
65
|
-
msys=false
|
66
|
-
darwin=false
|
67
|
-
nonstop=false
|
68
|
-
case "`uname`" in
|
69
|
-
CYGWIN* )
|
70
|
-
cygwin=true
|
71
|
-
;;
|
72
|
-
Darwin* )
|
73
|
-
darwin=true
|
74
|
-
;;
|
75
|
-
MINGW* )
|
76
|
-
msys=true
|
77
|
-
;;
|
78
|
-
NONSTOP* )
|
79
|
-
nonstop=true
|
80
|
-
;;
|
81
|
-
esac
|
82
|
-
|
83
|
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
84
|
-
|
85
|
-
# Determine the Java command to use to start the JVM.
|
86
|
-
if [ -n "$JAVA_HOME" ] ; then
|
87
|
-
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
88
|
-
# IBM's JDK on AIX uses strange locations for the executables
|
89
|
-
JAVACMD="$JAVA_HOME/jre/sh/java"
|
90
|
-
else
|
91
|
-
JAVACMD="$JAVA_HOME/bin/java"
|
92
|
-
fi
|
93
|
-
if [ ! -x "$JAVACMD" ] ; then
|
94
|
-
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
95
|
-
|
96
|
-
Please set the JAVA_HOME variable in your environment to match the
|
97
|
-
location of your Java installation."
|
98
|
-
fi
|
99
|
-
else
|
100
|
-
JAVACMD="java"
|
101
|
-
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
102
|
-
|
103
|
-
Please set the JAVA_HOME variable in your environment to match the
|
104
|
-
location of your Java installation."
|
105
|
-
fi
|
106
|
-
|
107
|
-
# Increase the maximum file descriptors if we can.
|
108
|
-
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
109
|
-
MAX_FD_LIMIT=`ulimit -H -n`
|
110
|
-
if [ $? -eq 0 ] ; then
|
111
|
-
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
112
|
-
MAX_FD="$MAX_FD_LIMIT"
|
113
|
-
fi
|
114
|
-
ulimit -n $MAX_FD
|
115
|
-
if [ $? -ne 0 ] ; then
|
116
|
-
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
117
|
-
fi
|
118
|
-
else
|
119
|
-
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
120
|
-
fi
|
121
|
-
fi
|
122
|
-
|
123
|
-
# For Darwin, add options to specify how the application appears in the dock
|
124
|
-
if $darwin; then
|
125
|
-
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
126
|
-
fi
|
127
|
-
|
128
|
-
# For Cygwin or MSYS, switch paths to Windows format before running java
|
129
|
-
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
130
|
-
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
131
|
-
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
132
|
-
JAVACMD=`cygpath --unix "$JAVACMD"`
|
133
|
-
|
134
|
-
# We build the pattern for arguments to be converted via cygpath
|
135
|
-
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
136
|
-
SEP=""
|
137
|
-
for dir in $ROOTDIRSRAW ; do
|
138
|
-
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
139
|
-
SEP="|"
|
140
|
-
done
|
141
|
-
OURCYGPATTERN="(^($ROOTDIRS))"
|
142
|
-
# Add a user-defined pattern to the cygpath arguments
|
143
|
-
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
144
|
-
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
145
|
-
fi
|
146
|
-
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
147
|
-
i=0
|
148
|
-
for arg in "$@" ; do
|
149
|
-
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
150
|
-
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
151
|
-
|
152
|
-
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
153
|
-
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
154
|
-
else
|
155
|
-
eval `echo args$i`="\"$arg\""
|
156
|
-
fi
|
157
|
-
i=`expr $i + 1`
|
158
|
-
done
|
159
|
-
case $i in
|
160
|
-
0) set -- ;;
|
161
|
-
1) set -- "$args0" ;;
|
162
|
-
2) set -- "$args0" "$args1" ;;
|
163
|
-
3) set -- "$args0" "$args1" "$args2" ;;
|
164
|
-
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
165
|
-
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
166
|
-
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
167
|
-
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
168
|
-
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
169
|
-
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
170
|
-
esac
|
171
|
-
fi
|
172
|
-
|
173
|
-
# Escape application args
|
174
|
-
save () {
|
175
|
-
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
176
|
-
echo " "
|
177
|
-
}
|
178
|
-
APP_ARGS=`save "$@"`
|
179
|
-
|
180
|
-
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
181
|
-
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
182
|
-
|
183
|
-
exec "$JAVACMD" "$@"
|