diff --git a/plugins/csvn/hook/commit.tpl b/plugins/csvn/hook/commit.tpl
deleted file mode 100755
index 886abed28..000000000
--- a/plugins/csvn/hook/commit.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-export LC_ALL=en_US.UTF-8
-export LC_CTYPE=zh_CN.UTF-8
-
-
-REPOS="$1"
-REV="$2"
-TXN_NAME="$3"
-
-
-if [ ! -d {$PROJECT_DIR}/csvn ]; then
- sudo mkdir -p {$PROJECT_DIR}/csvn
- sudo chown -R csvn:csvn {$PROJECT_DIR}/csvn
-fi
-
-SAVE_PATH={$PROJECT_DIR}/csvn/$REPOS
-SVN_PATH=http://127.0.0.1:{$PORT}/svn/$REPOS
-
-if [ ! -d $SAVE_PATH ]; then
- svn co $SVN_PATH $SAVE_PATH \
- --username={$CSVN_USER} \
- --password={$CSVN_PWD} \
- --no-auth-cache \
- --non-interactive
-fi
-
-cd $SAVE_PATH && svn update --username={$CSVN_USER} --password={$CSVN_PWD} --no-auth-cache --non-interactive
-
-WEB_PATH={$PROJECT_DIR}/wwwroot/$REPOS
-sudo mkdir -p $WEB_PATH
-
-sudo rsync -vauP --delete --exclude=".*" $SAVE_PATH/ $WEB_PATH
-sudo chown -R www:www $WEB_PATH
\ No newline at end of file
diff --git a/plugins/csvn/hook/post-commit.tpl b/plugins/csvn/hook/post-commit.tpl
deleted file mode 100755
index 2e52d3f19..000000000
--- a/plugins/csvn/hook/post-commit.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-
-
-REPOS="$1"
-REV="$2"
-TXN_NAME="$3"
-
-REPOS_NAME=${REPOS##*/}
-
-sh -x $REPOS/hooks/commit $REPOS_NAME $REV $TXN_NAME 2>$REPOS/sh.log
diff --git a/plugins/csvn/ico.png b/plugins/csvn/ico.png
deleted file mode 100644
index b84c97def..000000000
Binary files a/plugins/csvn/ico.png and /dev/null differ
diff --git a/plugins/csvn/index.html b/plugins/csvn/index.html
deleted file mode 100755
index 711177eae..000000000
--- a/plugins/csvn/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
diff --git a/plugins/csvn/index.py b/plugins/csvn/index.py
deleted file mode 100755
index 3689b70b8..000000000
--- a/plugins/csvn/index.py
+++ /dev/null
@@ -1,711 +0,0 @@
-# coding: utf-8
-
-import time
-import random
-import os
-import urllib
-import binascii
-import json
-import re
-import sys
-import subprocess
-
-sys.path.append(os.getcwd() + "/class/core")
-import mw
-
-
-app_debug = False
-if mw.isAppleSystem():
- app_debug = True
-
-
-def getPluginName():
- return 'csvn'
-
-
-def getPluginDir():
- return mw.getPluginDir() + '/' + getPluginName()
-
-
-def getServerDir():
- return mw.getServerDir() + '/' + getPluginName()
-
-
-def getInitDFile():
- if app_debug:
- return '/tmp/' + getPluginName()
- return '/etc/init.d/' + getPluginName()
-
-
-def getArgs():
- args = sys.argv[2:]
- tmp = {}
- args_len = len(args)
-
- if args_len == 1:
- t = args[0].strip('{').strip('}')
- t = t.split(':')
- tmp[t[0]] = t[1]
- elif args_len > 1:
- for i in range(len(args)):
- t = args[i].split(':')
- tmp[t[0]] = t[1]
-
- return tmp
-
-
-def initDreplace():
- initd_file = getInitDFile()
-
- if not os.path.exists(initd_file):
- return getServerDir()
-
- return initd_file
-
-
-def status():
- data = mw.execShell(
- "ps -ef|grep " + getPluginName() + " |grep -v grep | grep -v python | awk '{print $2}'")
- if data[0] == '':
- return 'stop'
- return 'start'
-
-
-def csvnOp(method):
-
- if app_debug:
- os_name = mw.getOs()
- if os_name == 'darwin':
- return "Apple Computer does not support"
-
- _initd_csvn = '/etc/init.d/csvn'
- _initd_csvn_httpd = '/etc/init.d/csvn-httpd'
- #_csvn = getServerDir() + '/bin/csvn'
- #_csvn_httpd = getServerDir() + '/bin/csvn-httpd'
-
- ret_csvn_httpd = mw.execShell(_initd_csvn_httpd + ' ' + method)
- # ret_csvn = mw.execShell(_initd_csvn + ' ' + method)
- subprocess.Popen(_initd_csvn + ' ' + method,
- stdout=subprocess.PIPE, shell=True)
- if ret_csvn_httpd[1] == '':
- return 'ok'
- return 'fail'
-
-
-def start():
- if not os.path.exists("/etc/init.d/csvn"):
- return "先在自启动安装!"
- return csvnOp('start')
-
-
-def stop():
- return csvnOp('stop')
-
-
-def restart():
- return csvnOp('restart')
-
-
-def reload():
- return csvnOp('reload')
-
-
-def initdStatus():
- if not app_debug:
- if mw.isAppleSystem():
- return "Apple Computer does not support"
-
- _initd_csvn = '/etc/init.d/csvn'
- _initd_csvn_httpd = '/etc/init.d/csvn-httpd'
-
- if os.path.exists(_initd_csvn) and os.path.exists(_initd_csvn_httpd):
- return 'ok'
- return 'fail'
-
-
-def initdInstall():
- import shutil
- if not app_debug:
- if mw.isAppleSystem():
- return "Apple Computer does not support"
-
- _csvn = getServerDir() + '/bin/csvn'
- _csvn_httpd = getServerDir() + '/bin/csvn-httpd'
-
- ret_csvn = mw.execShell(_csvn + ' install')
- ret_csvn_httpd = mw.execShell(_csvn_httpd + ' install')
- if ret_csvn[1] == '' and ret_csvn_httpd[1] == '':
- return 'ok'
- return 'fail'
-
-
-def initdUinstall():
- if not app_debug:
- if mw.isAppleSystem():
- return "Apple Computer does not support"
-
- _csvn = getServerDir() + '/bin/csvn'
- _csvn_httpd = getServerDir() + '/bin/csvn-httpd'
-
- ret_csvn = mw.execShell(_csvn + ' remove')
- ret_csvn_httpd = mw.execShell(_csvn_httpd + ' remove')
- return 'ok'
-
-
-def csvnEdit():
- data = {}
- data['svn_access_file'] = getServerDir() + '/data/conf/svn_access_file'
- data['commit_tpl'] = getPluginDir() + '/hook/commit.tpl'
- data['post_commit_tpl'] = getPluginDir() + '/hook/post-commit.tpl'
- return mw.getJson(data)
-
-
-def userAdd():
- args = getArgs()
- if not 'username' in args:
- return 'name missing'
-
- if not 'password' in args:
- return 'password missing'
-
- htpasswd = getServerDir() + "/bin/htpasswd"
- svn_auth_file = getServerDir() + "/data/conf/svn_auth_file"
- cmd = htpasswd + ' -b ' + svn_auth_file + ' ' + \
- args['username'] + ' ' + args['password']
- data = mw.execShell(cmd)
- # print data
- if data[0] == '':
- return 'ok'
- return 'fail'
-
-
-def userDel():
- args = getArgs()
- if not 'username' in args:
- return 'name missing'
-
- htpasswd = getServerDir() + "/bin/htpasswd"
- svn_auth_file = getServerDir() + "/data/conf/svn_auth_file"
- cmd = htpasswd + ' -D ' + svn_auth_file + ' ' + args['username']
- data = mw.execShell(cmd)
- if data[0] == '':
- return 'ok'
- return 'fail'
-
-
-def getAllUser(search=''):
- svn_auth_file = getServerDir() + '/data/conf/svn_auth_file'
- if not os.path.exists(svn_auth_file):
- return mw.getJson([])
- auth = mw.readFile(svn_auth_file)
- auth = auth.strip()
- auth_list = auth.split("\n")
-
- ulist = []
- for x in range(len(auth_list)):
- tmp = auth_list[x].split(':')
- if search != '':
- if tmp[0].find(search) != -1:
- ulist.append(tmp[0])
- else:
- ulist.append(tmp[0])
- return ulist
-
-
-def userList():
- import math
- args = getArgs()
-
- page = 1
- page_size = 10
- search = ''
- if 'page' in args:
- page = int(args['page'])
-
- if 'page_size' in args:
- page_size = int(args['page_size'])
-
- if 'search' in args:
- search = args['search']
-
- ulist = getAllUser(search)
- ulist_sum = len(ulist)
-
- page_info = {'count': ulist_sum, 'p': page,
- 'row': 10, 'tojs': 'csvnUserList'}
- data = {}
- data['list'] = mw.getPage(page_info)
- data['page'] = page
- data['page_size'] = page_size
- data['page_count'] = int(math.ceil(ulist_sum / page_size))
- start = (page - 1) * page_size
-
- data['data'] = ulist[start:start + page_size]
- return mw.getJson(data)
-
-
-def projectAdd():
- args = getArgs()
- if not 'name' in args:
- return 'project name missing'
- path = getServerDir() + '/bin/svnadmin'
- dest = getServerDir() + '/data/repositories/' + args['name']
- cmd = path + ' create ' + dest
- data = mw.execShell(cmd)
- if data[1] == '':
- mw.execShell('chown -R csvn:csvn ' + dest)
- return 'ok'
- return 'fail'
-
-
-def projectDel():
- args = getArgs()
- if not 'name' in args:
- return 'project name missing'
-
- dest = getServerDir() + '/data/repositories/' + args['name']
- cmd = 'rm -rf ' + dest
- data = mw.execShell(cmd)
- if data[0] == '':
- return 'ok'
- return 'fail'
-
-
-def getHttpPort():
- http_main_conf = getServerDir() + '/data/conf/csvn_main_httpd.conf'
- try:
- if os.path.exists(http_main_conf):
- content = mw.readFile(http_main_conf)
- return re.search('Listen\s(\d+)', content).groups()[0]
- except Exception as e:
- pass # print e
- return '80'
-
-
-def getCsvnPort():
- http_main_conf = getServerDir() + '/data/conf/csvn-wrapper.conf'
- try:
- if os.path.exists(http_main_conf):
- content = mw.readFile(http_main_conf)
- return re.search('wrapper.java.additional.3=-Djetty.port=(\d+)', content).groups()[0]
- except Exception as e:
- pass # print e
- return '3343'
-
-
-def getALlProjectList(search=''):
- path = getServerDir() + '/data/repositories'
- dlist = []
- if os.path.exists(path):
- for filename in os.listdir(path):
- tmp = {}
- filePath = path + '/' + filename
- if os.path.isdir(filePath):
- if search == '':
- tmp['name'] = filename
- dlist.append(tmp)
- else:
- if filename.find(search) != -1:
- tmp['name'] = filename
- dlist.append(tmp)
- return dlist
-
-
-def checkProjectListIsHasScript(data):
- dlen = len(data)
- for x in range(dlen):
- path = getServerDir() + '/data/repositories/' + \
- data[x]['name'] + '/hooks/post-commit'
- if os.path.exists(path):
- data[x]['has_hook'] = True
- else:
- data[x]['has_hook'] = False
-
- return data
-
-
-def projectList():
- import math
- args = getArgs()
-
- page = 1
- page_size = 10
- search = ''
- if 'page' in args:
- page = int(args['page'])
-
- if 'page_size' in args:
- page_size = int(args['page_size'])
-
- if 'search' in args:
- search = args['search']
-
- dlist = getALlProjectList(search)
- dlist_sum = len(dlist)
-
- start = (page - 1) * page_size
- ret_data = dlist[start:start + page_size]
- ret_data = checkProjectListIsHasScript(ret_data)
-
- data = {}
- data['data'] = ret_data
- data['list'] = mw.getPage(
- {'count': dlist_sum, 'p': page, 'row': 10, 'tojs': 'csvnProjectList'})
- data['ip'] = mw.getLocalIp()
- data['port'] = getHttpPort()
- data['csvn_port'] = getCsvnPort()
-
- return mw.getJson(data)
-
-
-def getAllAclList():
- svn_access_file = getServerDir() + '/data/conf/svn_access_file'
- aData = mw.readFile(svn_access_file)
- aData = re.sub('#.*', '', aData)
- aData = aData.strip().split('[')[1:]
- allAcl = {}
- for i in range(len(aData)):
- oData = aData[i].strip().split(']')
- name = oData[0].strip('/').strip(':')
- if oData[1] == '':
- allAcl[name] = []
- else:
- user = oData[1].strip().split('\n')
- userAll = []
- for iu in range(len(user)):
- ulist = user[iu].split('=')
- utmp = {}
- utmp['user'] = ulist[0].strip()
- utmp['acl'] = ulist[1].strip()
- userAll.append(utmp)
- allAcl[name] = userAll
- return allAcl
-
-
-def makeAclFile(content):
- # print content
- svn_access_file = getServerDir() + '/data/conf/svn_access_file'
- tmp = "\n"
- for k, v in content.items():
- if k == '':
- tmp += "[/]\n"
- else:
- tmp += "[" + k + ":/]\n"
-
- for iv in range(len(v)):
- tmp += v[iv]['user'] + ' = ' + v[iv]['acl'] + "\n"
- tmp += "\n"
- # svn_tmp_path = getServerDir() + '/data/conf/svn_access_file.log'
- return mw.writeFile(svn_access_file, tmp)
-
-
-def projectAclList():
- args = getArgs()
- if not 'name' in args:
- return 'name missing!'
- name = args['name']
- acl = getAllAclList()
-
- if name in acl:
- return mw.getJson(acl[name])
- else:
- return 'fail'
-
-
-def projectAclAdd():
- args = getArgs()
- if not 'uname' in args:
- return 'username missing'
- if not 'pname' in args:
- return 'project name missing'
- uname = args['uname']
- pname = args['pname']
-
- ulist = getAllUser()
- if not uname in ulist:
- return uname + " user not exists!"
-
- acl = getAllAclList()
-
- tmp_acl = {'user': uname, 'acl': 'rw'}
- if not pname in acl:
- acl[pname] = [tmp_acl]
- makeAclFile(acl)
- return 'ok'
-
- tmp = acl[pname]
- tmp_len = len(tmp)
-
- if tmp_len == 0:
- acl[pname] = [tmp_acl]
- else:
- is_have = False
- for x in range(tmp_len):
- if tmp[x]['user'] == uname:
- is_have = True
- return uname + ' users already exist!'
- if not is_have:
- tmp.append(tmp_acl)
- acl[pname] = tmp
-
- makeAclFile(acl)
- return 'ok'
-
-
-def projectAclDel():
- args = getArgs()
- if not 'uname' in args:
- return 'username missing'
- if not 'pname' in args:
- return 'project name missing'
-
- uname = args['uname']
- pname = args['pname']
-
- ulist = getAllUser()
- if not uname in ulist:
- return uname + " user not exists!"
-
- acl = getAllAclList()
-
- if not pname in acl:
- return 'project not exists!'
-
- tmp = acl[pname]
- tmp_len = len(tmp)
- if tmp_len == 0:
- return 'project no have user:' + uname
- else:
- is_have = False
- rtmp = []
- for x in range(tmp_len):
- if tmp[x]['user'] != uname:
- rtmp.append(tmp[x])
- acl[pname] = rtmp
- makeAclFile(acl)
- return 'ok'
-
-
-def projectAclSet():
- args = getArgs()
- if not 'uname' in args:
- return 'username missing'
- if not 'pname' in args:
- return 'project name missing'
- if not 'acl' in args:
- return 'acl missing'
-
- uname = args['uname']
- pname = args['pname']
- up_acl = args['acl']
-
- ulist = getAllUser()
- if not uname in ulist:
- return uname + " user not exists!"
-
- acl = getAllAclList()
-
- if not pname in acl:
- return 'project not exists!'
-
- tmp = acl[pname]
- tmp_len = len(tmp)
- if tmp_len == 0:
- return 'project no have user:' + uname
- else:
- is_have = False
- for x in range(tmp_len):
- if tmp[x]['user'] == uname:
- tmp[x]['acl'] = up_acl
- acl[pname] = tmp
- makeAclFile(acl)
- return 'ok'
-
-
-def getCsvnUser():
- user = 'admin_sync'
-
- acl = getAllAclList()
- if '' in acl:
- tmp = acl['']
- is_has = False
- for data in tmp:
- if data['user'] == user:
- is_has = True
- if not is_has:
- tmp.append({'user': user, 'acl': 'r'})
- acl[''] = tmp
- makeAclFile(acl)
- return user
-
-
-def getCsvnPwd(user):
- if app_debug:
- return user + '123'
- pwd_file = 'data/csvn_sync.pl'
-
- if os.path.exists(pwd_file):
- return mw.readFile(pwd_file).strip()
-
- import time
- cur_time = time.time()
- rand_pwd = mw.md5(str(cur_time))
- pwd = user + rand_pwd[:5]
-
- htpasswd = getServerDir() + "/bin/htpasswd"
- svn_auth_file = getServerDir() + "/data/conf/svn_auth_file"
- cmd = htpasswd + ' -b ' + svn_auth_file + ' ' + user + ' ' + pwd
- data = mw.execShell(cmd)
-
- mw.writeFile(pwd_file, pwd)
- return pwd
-
-
-def projectScriptLoad():
-
- args = getArgs()
- if not 'pname' in args:
- return 'project name missing'
-
- post_commit_tpl = getPluginDir() + '/hook/post-commit.tpl'
- hook_path = getServerDir() + '/data/repositories/' + \
- args['pname'] + '/hooks'
- post_commit_file = hook_path + '/post-commit'
-
- pct_content = mw.readFile(post_commit_tpl)
- mw.writeFile(post_commit_file, pct_content)
- mw.execShell('chmod 777 ' + post_commit_file)
-
- commit_tpl = getPluginDir() + '/hook/commit.tpl'
- commit_file = hook_path + '/commit'
-
- ct_content = mw.readFile(commit_tpl)
- ct_content = ct_content.replace('{$PROJECT_DIR}', mw.getRootDir())
- ct_content = ct_content.replace('{$PORT}', getHttpPort())
- ct_content = ct_content.replace('{$CSVN_USER}', getCsvnUser())
- ct_content = ct_content.replace('{$CSVN_PWD}', getCsvnPwd(getCsvnUser()))
-
- mw.writeFile(commit_file, ct_content)
- mw.execShell('chmod 777 ' + commit_file)
-
- return 'ok'
-
-
-def projectScriptUnload():
- args = getArgs()
- if not 'pname' in args:
- return 'project name missing'
-
- post_commit_file = getServerDir() + '/data/repositories/' + '/' + \
- args['pname'] + '/hooks/post-commit'
- mw.execShell('rm -f ' + post_commit_file)
-
- commit_file = getServerDir() + '/data/repositories/' + '/' + \
- args['pname'] + '/hooks/commit'
- mw.execShell('rm -f ' + commit_file)
- return 'ok'
-
-
-def projectScriptEdit():
- args = getArgs()
- if not 'pname' in args:
- return 'project name missing'
-
- data = {}
- commit_file = getServerDir() + '/data/repositories/' + \
- args['pname'] + '/hooks/commit'
- if os.path.exists(commit_file):
- data['status'] = True
- data['path'] = commit_file
- else:
- data['status'] = False
- data['msg'] = 'file does not exist'
-
- return mw.getJson(data)
-
-
-def projectScriptDebug():
- args = getArgs()
- if not 'pname' in args:
- return 'project name missing'
-
- data = {}
- commit_log = getServerDir() + '/data/repositories/' + \
- args['pname'] + '/sh.log'
- if os.path.exists(commit_log):
- data['status'] = True
- data['path'] = commit_log
- else:
- data['status'] = False
- data['msg'] = 'file does not exist'
-
- return mw.getJson(data)
-
-
-def getTotalStatistics():
- st = status()
- data = {}
- if st == 'start':
- svn_path = getServerDir() + '/data/repositories'
- data['status'] = True
- data['count'] = len(os.listdir(svn_path))
- data['ver'] = mw.readFile(getServerDir() + '/version.pl').strip()
- return mw.returnJson(True, 'ok', data)
- else:
- data['status'] = False
- data['count'] = 0
- return mw.returnJson(False, 'fail', data)
-
-
-if __name__ == "__main__":
- func = sys.argv[1]
- if func == 'status':
- print(status())
- elif func == 'start':
- print(start())
- elif func == 'stop':
- print(stop())
- elif func == 'restart':
- print(restart())
- elif func == 'reload':
- print(reload())
- elif func == 'initd_status':
- print(initdStatus())
- elif func == 'initd_install':
- print(initdInstall())
- elif func == 'initd_uninstall':
- print(initdUinstall())
- elif func == 'csvn_edit':
- print(csvnEdit())
- elif func == 'user_list':
- print(userList())
- elif func == 'user_add':
- print(userAdd())
- elif func == 'user_del':
- print(userDel())
- elif func == 'project_list':
- print(projectList())
- elif func == 'project_del':
- print(projectDel())
- elif func == 'project_add':
- print(projectAdd())
- elif func == 'project_acl_list':
- print(projectAclList())
- elif func == 'project_acl_add':
- print(projectAclAdd())
- elif func == 'project_acl_del':
- print(projectAclDel())
- elif func == 'project_acl_set':
- print(projectAclSet())
- elif func == 'project_script_load':
- print(projectScriptLoad())
- elif func == 'project_script_unload':
- print(projectScriptUnload())
- elif func == 'project_script_edit':
- print(projectScriptEdit())
- elif func == 'project_script_debug':
- print(projectScriptDebug())
- elif func == 'get_total_statistics':
- print(getTotalStatistics())
- else:
- print('fail')
diff --git a/plugins/csvn/info.json b/plugins/csvn/info.json
deleted file mode 100755
index 422ec52b6..000000000
--- a/plugins/csvn/info.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "sort": 7,
- "ps": "最流行的SVN代码共享管理软件",
- "shell": "install.sh",
- "name": "csvn",
- "title": "CSVN",
- "versions": "5.1",
- "updates":"5.1.4",
- "tip": "soft",
- "checks": "server/csvn",
- "path":"server/csvn",
- "author": "midoks",
- "date": "2017-04-01",
- "home": "https://www.collab.net",
- "type": "SVN代码共享管理软件",
- "pid": "3"
-}
\ No newline at end of file
diff --git a/plugins/csvn/install.sh b/plugins/csvn/install.sh
deleted file mode 100755
index 763e3e771..000000000
--- a/plugins/csvn/install.sh
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
-export PATH
-
-# https://blog.csdn.net/akipa11/article/details/103455298
-# https://blog.csdn.net/bbj12345678/article/details/122941395
-
-curPath=`pwd`
-rootPath=$(dirname "$curPath")
-rootPath=$(dirname "$rootPath")
-serverPath=$(dirname "$rootPath")
-
-install_tmp=${rootPath}/tmp/mw_install.pl
-
-
-sysName=`uname`
-echo "use system: ${sysName}"
-
-if [ ${sysName} == "Darwin" ]; then
- OSNAME='macos'
-elif grep -Eqi "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then
- OSNAME='centos'
-elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then
- OSNAME='fedora'
-elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then
- OSNAME='debian'
-elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then
- OSNAME='ubuntu'
-elif grep -Eqi "Raspbian" /etc/issue || grep -Eq "Raspbian" /etc/*-release; then
- OSNAME='raspbian'
-else
- OSNAME='unknow'
-fi
-
-
-CheckJAVA()
-{
- which "java" > /dev/null
- if [ $? -eq 0 ]
- then
- echo 'java is exist'
- elif [ "ubuntu" == "$OSNAME" ] || [ "debian" == "$OSNAME" ] ;then
- echo 'java install...'
- apt install -y default-jdk
-
- export JAVA_HOME=/usr/lib/jvm/default-java
- else
- echo 'java install...'
- yum install -y java
- fi
-}
-
-# export JAVA_HOME=/usr/lib/jvm/default-java
-#JAVA_BIN=/usr/lib/jvm/default-java/bin
-#JRE_HOME=/usr/lib/jvm/default-java/jre
-#PATH=$PATH:/usr/lib/jvm/default-java/bin:/usr/lib/jvm/default-java/jre/bin
-#CLASSPATH=/usr/lib/jvm/default-java/jre/lib:/usr/lib/jvm/default-java/lib:/usr/lib/jvm/default-java/jre/lib/charsets.jar
-
-
-Install_csvn()
-{
- CheckJAVA
- mkdir -p $serverPath/source
-
- echo '正在安装脚本文件...' > $install_tmp
-
- CSVN_SOURCE='https://github.com/midoks/mdserver-web/releases/download/init/CollabNetSubversionEdge-5.1.4_linux-x86_64.tar.xz'
-
- if [ ! -f $serverPath/source/csvn.tar.xz ];then
- wget -O $serverPath/source/csvn.tar.xz ${CSVN_SOURCE}
- fi
-
- cd $serverPath/source && tar -Jxf $serverPath/source/csvn.tar.xz
- mv $serverPath/source/csvn $serverPath/csvn
- echo '5.1' > $serverPath/csvn/version.pl
-
-
- if id -u csvn > /dev/null 2>&1; then
- echo "csvn user exists"
- else
- groupadd csvn
- useradd -g csvn csvn
- cp /etc/sudoers{,.`date +"%Y-%m-%d_%H-%M-%S"`}
- echo "csvn ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
- fi
-
- chown -R csvn:csvn $serverPath/csvn
-
- $serverPath/csvn/bin/csvn install
- $serverPath/csvn/bin/csvn-httpd install
-
- echo '安装完成' > $install_tmp
-}
-
-Uninstall_csvn()
-{
- rm -rf $serverPath/csvn
-}
-
-
-action=$1
-host=$2
-if [ "${1}" == 'install' ];then
- Install_csvn
-else
- Uninstall_csvn
-fi
diff --git a/plugins/csvn/js/csvn.js b/plugins/csvn/js/csvn.js
deleted file mode 100755
index 5df2d6d41..000000000
--- a/plugins/csvn/js/csvn.js
+++ /dev/null
@@ -1,500 +0,0 @@
-pluginService('csvn');
-
-function csvnPost(method,args,callback){
- var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
- $.post('/plugins/run', {name:'csvn', func:method, args:JSON.stringify(args)}, function(data) {
- layer.close(loadT);
- if (!data.status){
- layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- if(typeof(callback) == 'function'){
- callback(data);
- }
- },'json');
-}
-
-
-
-function csvnEdit(){
-
- csvnPost('csvn_edit',{} , function(data){
- // console.log(data);
- var rdata = $.parseJSON(data.data);
- var edit = '通用的手动编辑:
';
- edit +='\
- \
- \
- \
-
';
- $(".soft-man-con").html(edit);
- });
-
-}
-
-
-function csvnUserFind(){
- var search = $('#csvn_find_user').val();
- if (search==''){
- layer.msg('搜索字符不能为空!',{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
- csvnUserList(1, search);
-}
-
-function csvnUserList(page, search) {
-
- var _data = {};
- if (typeof(page) =='undefined'){
- var page = 1;
- }
-
- _data['page'] = page;
- _data['page_size'] = 10;
- if(typeof(search) != 'undefined'){
- _data['search'] = search;
- }
-
- csvnPost('user_list', _data, function(data){
-
- var rdata = $.parseJSON(data.data);
- // console.log(rdata);
- content = '';
- content += '
';
-
- content += '';
- content += '';
- content += '用户名 | ';
- content += '操作(添加) | ';
- content += '
';
-
- content += '';
-
- ulist = rdata.data;
- for (i in ulist){
- content += ''+ulist[i]+' | '+
- '删除 | ' +
- '改密 |
';
- }
-
- content += '';
- content += '
';
-
- page = '';
-
- content += page;
-
- $(".soft-man-con").html(content);
- });
-}
-
-function csvnDelUser(name){
- var loadOpen = layer.open({
- type: 1,
- title: '删除用户',
- area: '350px',
- content:""
- });
-
- $('#csvn_del_close').click(function(){
- layer.close(loadOpen);
- });
-
- $('#csvn_del_ok').click(function(){
- _data = {};
- _data['username'] = name;
- var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
- $.post('/plugins/run', {name:'csvn', func:'user_del', args:JSON.stringify(_data)}, function(data) {
- layer.close(loadT);
- if (!data.status){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- if (data.data !='ok'){
- layer.msg(data.data,{icon:2,time:2000,shade: [0.3, '#000']});
- }
-
- layer.close(loadOpen);
- layer.msg("删除成功!",{icon:1,time:3000,shade: [0.3, '#000']});
-
- },'json');
- });
-}
-
-function csvnAddUser(username){
-
- user_input = ''
- if (typeof(username) == 'undefined'){
- user_input = "";
- } else {
- user_input = "";
- }
-
- var loadOpen = layer.open({
- type: 1,
- title: '添加用户',
- area: '240px',
- content:""
- });
-
- $('#csvn_add_close').click(function(){
- layer.close(loadOpen);
- });
-
- $('#csvn_add_ok').click(function(){
- _data = {};
-
- _data['username'] = $('#csvn_username').val();
- _data['password'] = $('#csvn_password').val();
-
- var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
- $.post('/plugins/run', {name:'csvn', func:'user_add', args:JSON.stringify(_data)}, function(data) {
- layer.close(loadT);
- if (!data.status){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- if (data.data !='ok'){
- layer.msg(data.data,{icon:2,time:2000,shade: [0.3, '#000']});
- }
-
- csvnUserList();
- layer.close(loadOpen);
- layer.msg("操作成功!",{icon:1,time:3000,shade: [0.3, '#000']});
- },'json');
- });
-}
-
-function csvnModPwdUser(name){
- csvnAddUser(name);
-}
-
-function csvnProjectFind(){
- var search = $('#csvn_project_find').val();
- if (search == ''){
- layer.msg('查找字符不能为空!',{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- csvnProjectList(1, search);
-}
-
-function csvnProjectList(page, search){
- var _data = {};
- _data['page_size'] = 10;
- if (typeof(search) != 'undefined'){
- _data['search'] = search;
- }
-
- if (typeof(page) != 'undefined'){
- _data['page'] = page;
- setCookie('csvnProjectListPage',page);
- } else {
- _data['page'] = 1;
- cookie_page = getCookie('csvnProjectListPage')
- if (cookie_page >0){
- _data['page'] = cookie_page;
- }
- }
-
- csvnPost('project_list', _data, function(data){
-
- var rdata = $.parseJSON($.trim(data.data));
- var csvn_mg = project_url = 'http://' +rdata['ip'] +(rdata['csvn_port'] == '80' ? '': ':'+rdata['csvn_port']);
-
- content = '';
- content += '
';
-
- content += '';
- content += '';
- content += '项目名 | ';
- content += '地址 | ';
- content += '操作(添加) | 后台管理 | ';
- content += '
';
- content += '';
-
- // console.log(rdata);
- ulist = rdata.data;
- for (i in ulist){
- var project_url = 'http://' +rdata['ip'] +(rdata['port'] == '80' ? '': ':'+rdata['port'])+ '/svn/'+ulist[i]['name'];
- var code_url = 'http://' +rdata['ip'] +(rdata['port'] == '80' ? '': ':'+rdata['port'])+ '/viewvc/'+ulist[i]['name'];
- content += ''+ulist[i]['name']+' | '+
- ''+project_url+' | '+
- '删除 | ' +
- '权限 | ' +
- '源码 | ' +
- '脚本' +
- ' |
';
- }
-
- content += '';
- content += '
';
-
- page = '';
-
- content += page;
- $(".soft-man-con").html(content);
- });
-}
-
-function csvnDelProject(name){
- var loadOpen = layer.open({
- type: 1,
- title: '删除用户',
- area: '350px',
- content:""
- });
-
- $('#csvn_del_close').click(function(){
- layer.close(loadOpen);
- });
-
- $('#csvn_del_ok').click(function(){
- var _data = {};
- _data['name'] = name;
- var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
- $.post('/plugins/run', {name:'csvn', func:'project_del', args:JSON.stringify(_data)}, function(data) {
- layer.close(loadT);
- if (!data.status){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- if (data.data !='ok'){
- layer.msg(data.data,{icon:2,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- csvnProjectList();
- layer.close(loadOpen);
- layer.msg("删除成功!",{icon:1,time:3000,shade: [0.3, '#000']});
- },'json');
- });
-}
-
-function csvnAddProject(){
-
- var loadOpen = layer.open({
- type: 1,
- title: '添加项目',
- area: '240px',
- content:""
- });
-
- $('#csvn_project_close').click(function(){
- layer.close(loadOpen);
- });
-
- $('#csvn_project_ok').click(function(){
- var _data = {};
- _data['name'] = $('#csvn_name').val();
-
- csvnPost('project_add', _data, function(data){
-
- if (data.data !='ok'){
- layer.msg(data.data,{icon:2,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- csvnProjectList();
- layer.close(loadOpen);
- layer.msg("操作成功!",{icon:1,time:3000,shade: [0.3, '#000']});
- });
- });
-}
-
-
-function csvnProjectScript(pname, has_hook){
-
- var html = '';
- if (has_hook){
- html += '';
- html += '';
- html += '';
- html += '';
- } else {
- html += '';
- }
-
- var loadOpen = layer.open({
- type: 1,
- title: '脚本设置',
- area: '240px',
- content:''+html+'
'
- });
-}
-
-function csvnProjectScriptLoad(pname){
- csvnPost('project_script_load', {'pname':pname}, function(data){
- if (data.data != 'ok'){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- layer.msg('加载成功!',{icon:1,time:2000,shade: [0.3, '#000']});
- setTimeout(function(){
- csvnProjectList();
- },2000);
- });
-}
-
-function csvnProjectScriptUnload(pname){
- csvnPost('project_script_unload', {'pname':pname}, function(data){
- if (data.data != 'ok'){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- layer.msg('卸载成功!',{icon:1,time:2000,shade: [0.3, '#000']});
- setTimeout(function(){
- csvnProjectList();
- },2000);
- });
-}
-
-function csvnProjectScriptEdit(pname){
- csvnPost('project_script_edit', {'pname':pname}, function(data){
- var rdata = $.parseJSON(data.data);
- if (rdata['status']){
- onlineEditFile(0, rdata['path']);
- csvnProjectList();
- } else {
- layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']});
- }
- });
-}
-
-function csvnProjectScriptDebug(pname){
- csvnPost('project_script_debug', {'pname':pname}, function(data){
- var rdata = $.parseJSON(data.data);
- if (rdata['status']){
- onlineEditFile(0, rdata['path']);
- csvnProjectList();
- } else {
- layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']});
- }
- });
-}
-
-
-function csvnAclAdd(pname){
- var uname = $('#csvn_username').val();
- if (uname == ''){
- layer.msg('添加用户名不能为空!',{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- csvnPost('project_acl_add', {'pname':pname,'uname':uname}, function(data){
- if (data.data != 'ok'){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
- $('.layui-layer-close1').click();
- csvnAclProject(pname);
- });
-}
-
-function csvnAclDel(pname, uname){
- csvnPost('project_acl_del', {'pname':pname,'uname':uname}, function(data){
- if (data.data != 'ok'){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
- $('.layui-layer-close1').click();
- csvnAclProject(pname);
- });
-}
-
-function csvnAclSet(obj, pname, uname, acl, selected){
-
- if (selected){
- $(obj).prop('checked',true);
- layer.msg('权限没有变化!',{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- csvnPost('project_acl_set', {'pname':pname,'uname':uname, 'acl':acl}, function(data){
- if (data.data != 'ok'){
- layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']});
- return;
- }
-
- $('.layui-layer-close1').click();
- csvnAclProject(pname);
- });
-}
-
-function csvnAclProject(pname){
- csvnPost('project_acl_list', {'name':pname}, function(data){
-
- var rdata = [];
- try {
- rdata = $.parseJSON(data.data);
- } catch(e){}
-
- var list = '';
- for (i in rdata) {
- var user = rdata[i]['user'];
- var acl = '';
- if (rdata[i]['acl'] == 'r'){
- acl += ' 只读 | 读写';
- } else {
- acl += ' 只读 | 读写';
- }
-
- list += ''+user+' | ' + acl +' | '+
- '删除 | '+'
';
- }
-
- var loadOpen = layer.open({
- type: 1,
- title: '项目('+pname+')权限设置',
- area: '300px',
- content:""
- });
- });
-}
\ No newline at end of file