mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-25 04:43:33 +00:00
This script had served its purpose.
This commit is contained in:
parent
7b1f7cb48c
commit
3d30f7c9c7
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=103981
@ -1,146 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
#
|
||||
# de-pkg-comment - converts pkg-comment to COMMENT
|
||||
# (public domain)
|
||||
#
|
||||
# Usage:
|
||||
# de-pkg-comment portdir ...
|
||||
#
|
||||
# Notes:
|
||||
# - Local changes may be backed out and the previous file is renamed
|
||||
# to .#* if conversion fails.
|
||||
# - It requires a port have a MAINTAINER line.
|
||||
# - It does not touch master/slave ports automatically; just shows
|
||||
# some hints.
|
||||
# - Do not commit resulted files without checking the diffs.
|
||||
#
|
||||
# MAINTAINER= knu@FreeBSD.org
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
begin
|
||||
require 'features/ruby18'
|
||||
rescue LoadError; end
|
||||
|
||||
if ARGV.empty?
|
||||
STDERR.puts "usage: #{$0} portdir ..."
|
||||
exit 64
|
||||
end
|
||||
|
||||
def error(message)
|
||||
STDERR.puts("#{$dir}: #{message}")
|
||||
end
|
||||
|
||||
def info(message)
|
||||
STDOUT.puts("#{$dir}: #{message}")
|
||||
end
|
||||
|
||||
def backout(message)
|
||||
error(message)
|
||||
info("Backing out all modifications.")
|
||||
system 'cvs', '-Q', 'up', '-CdP'
|
||||
end
|
||||
|
||||
def cvs_up(*files)
|
||||
system *['cvs', '-q', 'up', '-dP', *files]
|
||||
end
|
||||
|
||||
def cvs_rm(*files)
|
||||
system *['cvs', '-Q', 'rm', '-f', *files]
|
||||
end
|
||||
|
||||
ARGV.each { |$dir|
|
||||
if !File.directory?($dir)
|
||||
error("Not a directory.")
|
||||
next
|
||||
end
|
||||
|
||||
Dir.chdir($dir) {
|
||||
if !File.directory?('CVS')
|
||||
error("Not a CVS working directory.")
|
||||
next
|
||||
end
|
||||
|
||||
info("Running cvs update")
|
||||
cvs_up()
|
||||
|
||||
makefile = 'Makefile'
|
||||
|
||||
if !File.exist?(makefile)
|
||||
error("No Makefile is found.")
|
||||
next
|
||||
end
|
||||
|
||||
commentfile = `make -V COMMENTFILE`.chomp
|
||||
|
||||
if !File.exist?(commentfile)
|
||||
error("No need to convert.")
|
||||
next
|
||||
end
|
||||
|
||||
comment = nil
|
||||
commentfile_defined = false
|
||||
maintainer_defined = false
|
||||
|
||||
info("Modifying #{makefile}")
|
||||
|
||||
open(makefile, 'r+') { |rw|
|
||||
contents = []
|
||||
|
||||
rw.each { |line|
|
||||
contents << line
|
||||
|
||||
case line
|
||||
when /^MAINTAINER\s*(\??=)/
|
||||
maintainer_defined = true
|
||||
|
||||
assign = $1
|
||||
|
||||
if assign == '?='
|
||||
info("Looks like a master port. Please check for slave ports.")
|
||||
end
|
||||
|
||||
open(commentfile) { |f|
|
||||
comment = f.gets.strip
|
||||
quoted_comment = comment.gsub(/#/, '\\#').gsub(/\$/, '$$')
|
||||
contents << "COMMENT#{assign}\t#{quoted_comment}\n"
|
||||
}
|
||||
when /^COMMENTFILE\s*([?!:]?=)/
|
||||
info("COMMENTFILE is defined. Please check out and edit manually.")
|
||||
commentfile_defined = true
|
||||
when /^MASTERDIR\s*([?!:]?=)/
|
||||
masterport = File.expand_path(`make -V MASTERDIR`.chomp)
|
||||
masterport.sub!(%r".*(?:^|/)([^/]+/[^/]+)$", '\1')
|
||||
|
||||
info("Looks like a slave port. Please look into the master port (#{masterport}) also.")
|
||||
end
|
||||
}
|
||||
|
||||
rw.rewind
|
||||
rw.puts contents
|
||||
}
|
||||
|
||||
if !maintainer_defined
|
||||
backout("No MAINTAINER line is found!")
|
||||
next
|
||||
end
|
||||
|
||||
newcomment = `make -V COMMENT`.chomp
|
||||
|
||||
if newcomment != comment
|
||||
backout("Failed to convert!")
|
||||
next
|
||||
end
|
||||
|
||||
unless commentfile_defined
|
||||
info("Removing #{commentfile}")
|
||||
cvs_rm(commentfile)
|
||||
end
|
||||
|
||||
info("Running cvs update again")
|
||||
cvs_up()
|
||||
|
||||
info("Done.")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user