Projects
home:Eustace:branches:Eulaceura:Factory
copy-jdk-configs
_service:obs_scm:copy-jdk-configs-1698303563.4f...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:copy-jdk-configs-1698303563.4f28948.obscpio of Package copy-jdk-configs
07070100000000000081A4000000000000000000000001653A0E4B000002D3000000000000000000000000000000000000002C00000000copy-jdk-configs-1698303563.4f28948/LICENSECopyright (c) 2015 Red Hat inc. All rights reserved. Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by the Red Hat inc. The name of the Red Hat inc. may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 07070100000001000081A4000000000000000000000001653A0E4B0000060F000000000000000000000000000000000000004800000000copy-jdk-configs-1698303563.4f28948/Ongoing-fixes-on-rhbz#2100617.patchFrom 3589b183d18d0ed839b947b973ce53b4d73836eb Mon Sep 17 00:00:00 2001 From: Jiri Vanek <jvanek@redhat.com> Date: Mon, 3 Oct 2022 18:53:30 +0200 Subject: [PATCH] Ongoing fixes on rhbz#2100617 - properly elaborat eonl on one file $x instead of $@ - proeprly cleanup config dir - do not check switch for existence but jsut use it --- copy_jdk_configs_fixFiles.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git copy_jdk_configs_fixFiles.sh copy_jdk_configs_fixFiles.sh index 0e4ce9f..2e5d603 100755 --- copy_jdk_configs_fixFiles.sh +++ copy_jdk_configs_fixFiles.sh @@ -37,17 +37,23 @@ mvDebug() { } rmDebug() { + local switch="" for x in "$@" ; do - if isJavaConfig "$x" ; then - cmdvDebug rm "$@" + if [[ $x == -* ]] ; then + switch="$switch $x" + elif isJavaConfig "$x" ; then + cmdvDebug rm $switch "$x" fi done } rmdirDebug() { + local switch="" for x in "$@" ; do - if isJavaConfig "$x" ; then - cmdvDebug rmdir "$@" + if [[ $x == -* ]] ; then + switch="$switch $x" + elif isJavaConfig "$x" ; then + cmdvDebug rmdir $switch "$x" fi done } @@ -55,7 +61,11 @@ rmdirDebug() { #we should be pretty strict about removing once used (even "used" [with fail]) config file, as it may corrupt another installation clean(){ debug "cleanup: removing $config" - rmDebug -rf $config + if [ "x$debug" == "xtrue" ] ; then + rm -rf $config -v + else + rm -rf $config 1>/dev/null 2>&1 + fi } if [ "x" == "x$config" ] ; then 07070100000002000081A4000000000000000000000001653A0E4B00000530000000000000000000000000000000000000002E00000000copy-jdk-configs-1698303563.4f28948/README.md# copy-jdk-configs #### 介绍 {**以下是码云平台说明,您可以替换此简介** 码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 07070100000003000081A4000000000000000000000001653A0E4B000006EE000000000000000000000000000000000000003A00000000copy-jdk-configs-1698303563.4f28948/copy-jdk-configs.spec%global pretrans_install %(cat %{SOURCE0} | sed s/%%/%%%%/g | sed s/\\^%%%%/^%%/g) Name: copy-jdk-configs Version: 4.1 Release: 1 Summary: JDKs Configuration File License: BSD URL: https://github.com/rh-openjdk/copy_jdk_configs Source0: %{URL}/raw/copy_jdk_configs-%{version}/copy_jdk_configs.lua Source1: %{URL}/raw/copy_jdk_configs-%{version}/LICENSE Source2: %{URL}/raw/copy_jdk_configs-%{version}/copy_jdk_configs_fixFiles.sh Patch0: Ongoing-fixes-on-rhbz#2100617.patch BuildArch: noarch Requires: lua lua-posix Requires: findutils OrderWithRequires: findutils %description Utility script for transferring JDK configuration files when updating or archiving. Repair rpmnew file created by error by using scrip %prep cp -a %{SOURCE1} . cp -a %{SOURCE2} . %patch0 -p0 %build %pretrans -p <lua> function createPretransScript() os.execute("mkdir -p %{_localstatedir}/lib/rpm-state") temp_path="%{_localstatedir}/lib/rpm-state/copy_jdk_configs.lua" file = io.open(temp_path, "w") file:write([[%{pretrans_install}]]) file:close() end if pcall(createPretransScript) then -- ok else -- print("Error running %{name} pretrans.") end %install install -D %{SOURCE0} $RPM_BUILD_ROOT/%{_libexecdir}/copy_jdk_configs.lua install -D %{_builddir}/copy_jdk_configs_fixFiles.sh $RPM_BUILD_ROOT/%{_libexecdir}/copy_jdk_configs_fixFiles.sh %posttrans rm "%{rpm_state_dir}/copy_jdk_configs.lua" 2> /dev/null || : %files %{_libexecdir}/* %license LICENSE %changelog * Wed Oct 25 2023 xu_ping<707078654@qq.com> - 4.1-1 - update to 4.1 * Mon Jan 06 2020 xu_ping<xuping33@huawei.com> - 4.0-1 - Upgrade 4.0 to fix Packaging scriptlets assume global 'arg' in Lua environment * Thu Nov 28 2019 gulining<gulining1@huawei.com> - 3.7-3 - Pakcage init 07070100000004000081A4000000000000000000000001653A0E4B0000007E000000000000000000000000000000000000003A00000000copy-jdk-configs-1698303563.4f28948/copy-jdk-configs.yamlversion_control: git src_repo: https://github.com/rh-openjdk/copy_jdk_configs.git tag_prefix: ^copy_jdk_configs- seperator: . 07070100000005000081A4000000000000000000000001653A0E4B00003193000000000000000000000000000000000000003900000000copy-jdk-configs-1698303563.4f28948/copy_jdk_configs.lua#!/usr/bin/lua -- rpm call -- debug=true lua -- copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}" --jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver "%{javaver}" --arch "%{_arch}" --test call -- debug=true lua -- copy_jdk_configs.lua --currentjvm "java-1.8.0-openjdk-1.8.0.65-3.b17.fc22.x86_64" --jvmdir "/usr/lib/jvm" --origname "java-1.8.0-openjdk" --origjavaver "1.8.0" --arch "x86_64" --jvmDestdir /home/jvanek/Desktop local M = {} if (os.getenv("debug") == "true") then debug = true; else debug = false; end local function debugOneLinePrint(string) if (debug) then print(string) end ; end function getPath(str, sep) sep = sep or '/' return str:match("(.*" .. sep .. ")") end function splitToTable(source, pattern) local i1 = string.gmatch(source, pattern) local l1 = {} for i in i1 do table.insert(l1, i) end return l1 end local function slurp(path) local f = io.open(path) local s = f:read("*a") f:close() return s end function trim(s) return (s:gsub("^%s*(.-)%s*$", "%1")) end local function dirWithParents(path) local s = "" local dirs = splitToTable(path, "[^/]+") for i, d in pairs(dirs) do if (i == #dirs) then break end s = s .. "/" .. d local stat2 = posix.stat(s, "type"); if (stat2 == nil) then debugOneLinePrint(s .. " does not exists, creating") if (not dry) then posix.mkdir(s) end else debugOneLinePrint(s .. " exists,not creating") end end end -- main function, -- formelry main body -- move to function resolved -- https://bugzilla.redhat.com/show_bug.cgi?id=1892224 -- for readability not indented, todo, indent once tuned function M.mainProgram(arg) debugOneLinePrint("cjc: lua debug on") local caredFiles = { "jre/lib/calendars.properties", "jre/lib/content-types.properties", "jre/lib/flavormap.properties", "jre/lib/logging.properties", "jre/lib/net.properties", "jre/lib/psfontj2d.properties", "jre/lib/sound.properties", "jre/lib/deployment.properties", "jre/lib/deployment.config", "jre/lib/security/US_export_policy.jar", "jre/lib/security/unlimited/US_export_policy.jar", "jre/lib/security/limited/US_export_policy.jar", "jre/lib/security/policy/unlimited/US_export_policy.jar", "jre/lib/security/policy/limited/US_export_policy.jar", "jre/lib/security/java.policy", "jre/lib/security/java.security", "jre/lib/security/local_policy.jar", "jre/lib/security/unlimited/local_policy.jar", "jre/lib/security/limited/local_policy.jar", "jre/lib/security/policy/unlimited/local_policy.jar", "jre/lib/security/policy/limited/local_policy.jar", "jre/lib/security/nss.cfg", "jre/lib/security/cacerts", "jre/lib/security/blacklisted.certs", "jre/lib/security/jssecacerts", "jre/lib/security/trusted.certs", "jre/lib/security/trusted.jssecerts", "jre/lib/security/trusted.clientcerts", "jre/lib/ext", "jre/lib/security/blacklist", "jre/lib/security/javaws.policy", "jre/lib/security/nss.fips.cfg", "lib/security", "conf", "lib/ext" } -- before import to allow run from spec if (arg[1] == "--list") then for i, file in pairs(caredFiles) do print(file) end return 0; end -- yum install lua-posix local posix = require "posix" -- the one we are installing local currentjvm = nil local jvmdir = nil local jvmDestdir = nil local origname = nil local origjavaver = nil local arch = nil local temp = nil; local dry = false; for i = 1, #arg, 2 do if (arg[i] == "--help" or arg[i] == "-h") then print("all but jvmDestdir and debug are mandatory") print(" --currentjvm") print(" NVRA of currently installed java") print(" --jvmdir") print(" Directory where to find this kind of virtual machine. Generally /usr/lib/jvm") print(" --origname") print(" convinient switch to determine jdk. Generally java-1.X.0-vendor") print(" --origjavaver") print(" convinient switch to determine jdk's version. Generally 1.X.0") print(" --arch") print(" convinient switch to determine jdk's arch") print(" --jvmDestdir") print(" Migration/testing switch. Target Mostly same as jvmdir, but you may wont to copy ouside it.") print(" --debug or $debug") print(" Enables printing out whats going on. true/false. False by default") print(" --temp") print(" optional file to save intermediate result - directory configs were copied from") print(" --dry") print(" true/fase if true, then no changes will be written to disk except one tmp file. False by default") print(" **** specil parasm ****") print(" --list") print(" if present on cmdline, list all cared files and exists") os.exit(0) end if (arg[i] == "--currentjvm") then currentjvm = arg[i + 1] end if (arg[i] == "--jvmdir") then jvmdir = arg[i + 1] end if (arg[i] == "--origname") then origname = arg[i + 1] end if (arg[i] == "--origjavaver") then origjavaver = arg[i + 1] end if (arg[i] == "--arch") then arch = arg[i + 1] end if (arg[i] == "--jvmDestdir") then jvmDestdir = arg[i + 1] end if (arg[i] == "--debug") then --no string, boolean, workaround if (arg[i + 1] == "true") then debug = true end end if (arg[i] == "--dry") then --no string, boolean, workaround if (arg[i + 1] == "true") then dry = true end end if (arg[i] == "--temp") then temp = arg[i + 1] end end if (jvmDestdir == nil) then jvmDestdir = jvmdir end if (debug) then print("--currentjvm:"); print(currentjvm); print("--jvmdir:"); print(jvmdir); print("--jvmDestdir:"); print(jvmDestdir); print("--origname:"); print(origname); print("--origjavaver:"); print(origjavaver); print("--arch:"); print(arch); print("--debug:"); print(debug); end --trasnform substitute names to lua patterns local name = string.gsub(string.gsub(origname, "%-", "%%-"), "%.", "%%.") local javaver = string.gsub(origjavaver, "%.", "%%.") local jvms = { } debugOneLinePrint("started") foundJvms = posix.dir(jvmdir); if (foundJvms == nil) then debugOneLinePrint("no, or nothing in " .. jvmdir .. " exit") return end debugOneLinePrint("found " .. #foundJvms .. " jvms") for i, p in pairs(foundJvms) do -- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command if (string.find(p, name .. "%-" .. javaver .. ".*" .. arch) ~= nil) then debugOneLinePrint("matched: " .. p) if (currentjvm == p) then debugOneLinePrint("this jdk is already installed. exiting lua script") return end ; if (string.match(p, ".*-debug$")) then print(p .. " matched but seems to be debug variant. Skipping") else table.insert(jvms, p) end else debugOneLinePrint("NOT matched: " .. p) end end if (#jvms <= 0) then debugOneLinePrint("no matching jdk in " .. jvmdir .. " exit") return end ; debugOneLinePrint("matched " .. #jvms .. " jdk in " .. jvmdir) --full names are like java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64 table.sort(jvms, function(a, b) -- version-sort -- split on non word: . - local l1 = splitToTable(a, "[^%.-]+") local l2 = splitToTable(b, "[^%.-]+") for x = 1, math.min(#l1, #l2) do local l1x = tonumber(l1[x]) local l2x = tonumber(l2[x]) if (l1x ~= nil and l2x ~= nil) then --if hunks are numbers, go with them if (l1x < l2x) then return true; end if (l1x > l2x) then return false; end else if (l1[x] < l2[x]) then return true; end if (l1[x] > l2[x]) then return false; end end -- if hunks are equals then move to another pair of hunks end return a < b end) if (debug) then print("sorted lsit of jvms") for i, file in pairs(jvms) do print(file) end end latestjvm = jvms[#jvms] if (temp ~= nil) then src = jvmdir .. "/" .. latestjvm debugOneLinePrint("temp declared as " .. temp .. " saving used dir of " .. src) file = io.open(temp, "w") file:write(src) file:close() end local readlinkOutput = os.tmpname() for i, file in pairs(caredFiles) do local SOURCE = jvmdir .. "/" .. latestjvm .. "/" .. file local DEST = jvmDestdir .. "/" .. currentjvm .. "/" .. file debugOneLinePrint("going to copy " .. SOURCE) debugOneLinePrint("to " .. DEST) local stat1 = posix.stat(SOURCE, "type"); if (stat1 ~= nil) then debugOneLinePrint(SOURCE .. " exists") dirWithParents(DEST) -- Copy with -a to keep everything intact local exe = "cp" .. " -ar " .. SOURCE .. " " .. DEST local linkExe = "readlink" .. " -f " .. SOURCE .. " > " .. readlinkOutput debugOneLinePrint("executing " .. linkExe) os.remove(readlinkOutput) os.execute(linkExe) local link = trim(slurp(readlinkOutput)) debugOneLinePrint(" ...link is " .. link) if (not ((link) == (SOURCE))) then debugOneLinePrint("WARNING link " .. link .. " where file " .. SOURCE .. " expected!") debugOneLinePrint("Will try to copy link target rather then link itself!") --replacing any NVRA by future NVRA (still execting to have NVRA for any multiple-installable targets -- lua stubbornly consider dash as inteval. Replacing by dot to match X-Y more correct as X.Y rather then not at all local linkDest = string.gsub(link, latestjvm:gsub("-", "."), currentjvm) debugOneLinePrint("attempting to copy " .. link .. " to " .. linkDest) if (link == linkDest) then debugOneLinePrint("Those are identical files! Nothing to do!") else local exe2 = "cp" .. " -ar " .. link .. " " .. linkDest dirWithParents(linkDest) debugOneLinePrint("executing " .. exe2) if (not dry) then os.execute(exe2) end end else debugOneLinePrint("executing " .. exe) if (not dry) then os.execute(exe) end end else debugOneLinePrint(SOURCE .. " does not exists") end end end --unindented main function if (arg == nil) then debugOneLinePrint("arg variable is nil, you have to call mainProgram manually") -- this can actually not be invoked, as the debug is set via arg else M.mainProgram(arg) end return M 07070100000006000081A4000000000000000000000001653A0E4B00001BB1000000000000000000000000000000000000004100000000copy-jdk-configs-1698303563.4f28948/copy_jdk_configs_fixFiles.sh#!/bin/bash config=$1 target=$2 debug(){ if [ "x$debug" == "xtrue" ] ; then echo "$@" fi } debug "cjc: bash debug is on" isJavaConfig() { local arg="${1}" local relpath=`realpath -s $arg` local realink=`readlink -f $arg` if [[ ${relpath} = /usr/lib/jvm/java* || ${relpath} = /etc/java/java* ]] ; then if [[ ${realink} = /usr/lib/jvm/java* || ${realink} = /etc/java/java* ]] ; then debug "$arg / ${relpath} / ${realink} is correct jdk folder" return 0 fi fi debug "$arg / ${relpath} / ${realink} is not jdk folder, file/dir should be skipped" return 1 } cmdvDebug() { if [ "x$debug" == "xtrue" ] ; then "$@" -v else "$@" 1>/dev/null 2>&1 fi } mvDebug() { cmdvDebug mv "$@" } rmDebug() { for x in "$@" ; do if isJavaConfig "$x" ; then cmdvDebug rm "$@" fi done } rmdirDebug() { for x in "$@" ; do if isJavaConfig "$x" ; then cmdvDebug rmdir "$@" fi done } #we should be pretty strict about removing once used (even "used" [with fail]) config file, as it may corrupt another installation clean(){ debug "cleanup: removing $config" rmDebug -rf $config } if [ "x" == "x$config" ] ; then debug "no config file specified" exit 1 fi if [ ! -f "$config" ] ; then debug "$config file do not exists" # expected case, when no migration happened exit 0 fi if [ "x" == "x$target" ] ; then debug "no target dir specified" clean exit 2 fi if [ ! -d "$target" ] ; then debug "$target is not directory" clean exit 22 fi source=`cat $config` if [ "x" == "x$source" ] ; then debug "no information in $config" clean exit 3 fi if [ ! -d "$source" ] ; then debug "$source from $config is not directory" clean exit 33 fi listLinks(){ find $1 -type l -print0 | xargs -0 ls -ld | sed "s; \+-> \+;_->_;g" | sed "s;.* $1;$1;" } printIfExists(){ if [ -e $ffileCandidate ] ; then echo $1 else # stdout can be captured, therefore stderr debug "skipping not-existing link-target-dir $1" 1>&2 fi } createListOfLinksTargetsDirectories(){ pushd $source >/dev/null 2>&1 local links=`listLinks $1` for x in $links ; do echo "$x" | grep "jre-abrt" > /dev/null if [ $? -eq 0 ] ; then continue fi local ffileCandidate=$(echo $x | sed "s/.*_->_//") ; # ignoring relative paths as they may lead who know where later # there can be simlink relative to position, so push is not catching all if [ "$ffileCandidate" != "${ffileCandidate#/}" ] ; then if [ -d $ffileCandidate ] ; then # should we accept the links to directories themselves? printIfExists $ffileCandidate else printIfExists `dirname $ffileCandidate` fi fi done | sort | uniq popd >/dev/null 2>&1 } sourceLinks=`listLinks $source` targetLinks=`listLinks $target` sourceLinksDirsTarget=`createListOfLinksTargetsDirectories $source` targetLinksDirsTarget=`createListOfLinksTargetsDirectories $target` debug "source: $source" debug "target: $target" debug "sourceLinks: $sourceLinks" debug "targetLinks: $targetLinks" debug "sourceLinksDirsTarget: $sourceLinksDirsTarget" debug "targetLinksDirsTarget: $targetLinksDirsTarget" sourceSearchPath="$source $sourceLinksDirsTarget" targetSearchPath="$target $targetLinksDirsTarget" work(){ if [ "X$1" == "Xrpmnew" -o "X$1" == "Xrpmorig" ] ; then debug "Working with $1 (1)" else debug "unknown parameter: $1" return 1 fi local files=`find $targetSearchPath | grep "\\.$1$"` for file in $files ; do local sf1=`echo $file | sed "s/\\.$1$//"` local sf2=`echo $sf1 | sed "s/$targetName/$srcName/"` # was file modified in origianl installation? rpm -Vf $source | grep -q $sf2 if [ $? -gt 0 ] ; then if [ "X$1" == "Xrpmnew" ] ; then debug "$sf2 was NOT modified, removing possibly corrupted $sf1 and renaming from $file" mvDebug -f $file $sf1 if [ $? -eq 0 ] ; then echo "restored $file to $sf1" else debug "FAILED to restore $file to $sf1" fi fi if [ "X$1" == "Xrpmorig" ] ; then debug "$sf2 was NOT modified, removing possibly corrupted $file" rmDebug $file fi else debug "$sf2 was modified, keeping $file, and removing the duplicated original" # information is now backuped, in new directory anyway. Removing future rpmsave to allow rpm -e rmDebug -f $sf2 # or its corresponding backup rmDebug -f $sf2.$1 fi done } srcName=`basename $source` targetName=`basename $target` work rpmnew work rpmorig debug "Working with rpmorig (2)" # simply moving old rpmsaves to new dir # fix for config (replace) leftovers files=`find $sourceSearchPath | grep "\\.rpmorig$"` for file in $files ; do rpmsaveTarget=`echo $file | sed "s/$srcName/$targetName/"` debug "relocating $file to $rpmsaveTarget" if [ -e $rpmsaveTarget ] ; then rmDebug $file else mvDebug $file $rpmsaveTarget fi done debug "Working with rpmsave (1)" files=`find $sourceSearchPath | grep "\\.rpmsave$"` for file in $files ; do rpmsaveTarget=`echo $file | sed "s/$srcName/$targetName/"` debug "relocating $file to $rpmsaveTarget" if [ -e $rpmsaveTarget ] ; then rmDebug $file else mvDebug $file $rpmsaveTarget fi done #warning: file /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64-debug/jre/lib/applet: remove failed: No such file or directory #warning: file /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64-debug/jre/lib/amd64/client: remove failed: No such file or directory #warning: file /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64/jre/lib/amd64/xawt: remove failed: No such file or directory #those dirs might be mepty by installtion, filling to not be rmeoved later #use exported CJC_BLACKDIRS_ADD to extend it in runtime/spec file blackdirs="" internal_blackdirs="jre/lib/applet jre/lib/*/client jre/lib/locale/*/LC_MESSAGES jre/lib/*/xawt jre/javaws properties/version properties jre/lib/endorsed jre/lib/boot lib/missioncontrol/p2/org.eclipse.equinox.p2.engine/profileRegistry/JMC.profile/.data" for x in $internal_blackdirs $CJC_BLACKDIRS_ADD ; do blackdirs="$blackdirs $source/$x" done for blackdir in $blackdirs; do if [ -e $blackdir ] ; then debug "nasty $blackdir exists, filling" touch $blackdir/C-J-C_placeholder else debug "nasty $blackdir DONT exists, ignoring" fi done debug "cleaning legacy leftowers" if [ "x$debug" == "xtrue" ] ; then emptyCandidates=`find $sourceSearchPath -empty -type d` else emptyCandidates=`find $sourceSearchPath -empty -type d 2>/dev/null` fi if [ ! "x$emptyCandidates" == "x" ] ; then rmdirDebug $emptyCandidates fi rmdirDebug $sourceSearchPath # and remove placeholders for blackdir in $blackdirs; do if [ -e $blackdir ] ; then debug "nasty $blackdir exists, cleaning placeholder" rmDebug $blackdir/C-J-C_placeholder else debug "nasty $blackdir DONT exists, ignoring again" fi done clean exit 0 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!52 blocks
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2