Added preparing actions for custom build
This commit is contained in:
128
app.rb
128
app.rb
@@ -1916,6 +1916,134 @@ get "/prjuplrpm/:id" do
|
||||
|
||||
end
|
||||
|
||||
get "/prjcstmbld/:id/:git_id" do
|
||||
prj = ProjectsActions.new(cfg.get_projects_path, db)
|
||||
if prj.path.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
prj_info = prj.get_project(params["id"])
|
||||
if prj_info.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
git_info = repo.get_repo_short_info_by_id(params["git_id"].to_i)
|
||||
|
||||
@page_name = "#{prj_info[:projname]} задать скрипт сборки git проекта #{git_info[:reponame]}"
|
||||
@proj_name = prj_info[:projname]
|
||||
@proj_descr = prj_info[:descr]
|
||||
@git_name = git_info[:reponame]
|
||||
@proj_id = prj_info[:id]
|
||||
@git_id = git_info[:id]
|
||||
cust_bld = prj.get_project_custom_build(prj_info[:id], git_info[:id])
|
||||
if session[:errora_data].nil?
|
||||
@old_filepath = cust_bld[:script_name]
|
||||
else
|
||||
@old_filepath = session[:old_filepath]
|
||||
end
|
||||
if session[:old_content].nil?
|
||||
@old_content = cust_bld[:content]
|
||||
else
|
||||
@old_content = session[:old_content]
|
||||
end
|
||||
if session[:old_descr].nil?
|
||||
@old_descr = cust_bld[:description]
|
||||
else
|
||||
@old_descr = session[:old_descr]
|
||||
end
|
||||
@error_data = session[:errora_data]
|
||||
session[:errora_data] = nil
|
||||
session[:old_filepath] = nil
|
||||
session[:old_descr] = nil
|
||||
session[:old_content] = nil
|
||||
erb :prjcustombld
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
post "/prjcstmbld/:id/:git_id" do
|
||||
unless params["cancel"].nil?
|
||||
session[:old_filepath] = nil
|
||||
session[:old_descr] = nil
|
||||
session[:old_content] = nil
|
||||
redirect "/prjedit/#{params["id"]}"
|
||||
else
|
||||
session[:old_filepath] = params["filepath"]
|
||||
session[:old_descr] = params["description"]
|
||||
session[:old_content] = params["codedata"]
|
||||
if params["filepath"].nil? || params["description"].nil? || params["filepath"].strip == "" || params["description"].strip == ""
|
||||
session[:errora_data] = "Имя рецепта и описание не должны быть пустыми"
|
||||
redirect "/prjcstmbld/#{params["id"]}/#{params["git_id"]}"
|
||||
else
|
||||
if params["filepath"] =~ /^[0-9a-zA-Z_\.]+$/
|
||||
# Valid filepath
|
||||
# Proceed with further processing
|
||||
codedata = params["codedata"].gsub(/\r$/, "")
|
||||
prj = ProjectsActions.new(cfg.get_projects_path, db)
|
||||
if prj.path.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
prj_info = prj.get_project(params["id"])
|
||||
if prj_info.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
unless params["save"].nil?
|
||||
prj.set_project_custom_build(params["id"], params["git_id"], params["filepath"], params["description"], codedata)
|
||||
redirect "/prjedit/#{params["id"]}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
# Invalid filepath
|
||||
session[:errora_data] = "Недопустимые символы в имени файла"
|
||||
redirect "/prjcstmbld/#{params["id"]}/#{params["git_id"]}"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
post "/prjcstmblddel/:id/:git_id" do
|
||||
|
||||
prj = ProjectsActions.new(cfg.get_projects_path, db)
|
||||
if prj.path.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
prj_info = prj.get_project(params["id"])
|
||||
if prj_info.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
git_info = repo.get_repo_short_info_by_id(params["git_id"].to_i)
|
||||
input_name = params["rcpnamedup"]
|
||||
info = prj.get_project_custom_build(prj_info[:id], git_info[:id])
|
||||
if info.nil?
|
||||
print_error_page(404, "Скрипта не существует")
|
||||
else
|
||||
puts input_name
|
||||
puts info
|
||||
if info[:script_name] == input_name
|
||||
prj.del_project_custom_build(params["id"], params["git_id"])
|
||||
end
|
||||
redirect "/prjedit/#{params["id"]}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
get "/sanitize" do
|
||||
#Подчистим гит проекты, которые есть в базе, но нет в файловой системе
|
||||
|
||||
Reference in New Issue
Block a user