aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Osorio <rodrigo@FreeBSD.org>2021-11-12 22:22:31 +0000
committerRodrigo Osorio <rodrigo@FreeBSD.org>2021-11-14 22:45:25 +0000
commit0c8d8ebb7b3e218ca8a8445785266d33b4d3c8ff (patch)
tree28afd61addfea1aa8c79d685470fbc22833d4259
parent2b8ba6d0a3970e31aaadd4aecf646f25688d148c (diff)
downloadports-0c8d8ebb7b3e218ca8a8445785266d33b4d3c8ff.tar.gz
ports-0c8d8ebb7b3e218ca8a8445785266d33b4d3c8ff.zip
Tools/scripts: Add new script update_crates to replace CARGO_CRATES block
Simple shell script to help updating Makefile CARGO_CRATES variable returned by make cargo-crates. simplest way to use it : make cargo-crates | update_crates Makefile > NewMakefile
-rw-r--r--Tools/scripts/README3
-rwxr-xr-xTools/scripts/update_crates62
2 files changed, 65 insertions, 0 deletions
diff --git a/Tools/scripts/README b/Tools/scripts/README
index 1b7d2b838270..aa9b32f612e4 100644
--- a/Tools/scripts/README
+++ b/Tools/scripts/README
@@ -42,6 +42,9 @@ tindex - script used to build INDEXes for supported FreeBSD branches, which
failure reports on ports@FreeBSD.org
update-patches - generates updated patches.
+update_crates - script used to generate an updated Makefile using make cargo-crates
+ output
+
----------------------------------------------------------------------
gnomedepends is a script, which analyses pkg/PLIST and gives an advice as to
diff --git a/Tools/scripts/update_crates b/Tools/scripts/update_crates
new file mode 100755
index 000000000000..c95b4bbec6af
--- /dev/null
+++ b/Tools/scripts/update_crates
@@ -0,0 +1,62 @@
+#!/bin/sh
+# Copyright (c) 2021 Rodrigo Osorio
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# MAINTAINER= rodrigo@FreeBSD.org
+#
+
+usage() {
+ echo "usage: update_crates <makefile>"
+ echo
+ exit 1
+}
+
+if [ "$#" -ne 1 ]; then
+ usage
+ exit 1
+fi
+
+newcrates() {
+ while IFS= read -r nline
+ do
+ echo "$nline"
+ done < "/dev/stdin"
+}
+
+infile=$1
+incrates=0
+while IFS= read -r line <&3
+do
+ match=$(echo "${line}" | grep "^CARGO_CRATES=")
+ [ -n "${match}" ] && incrates=1
+ if [ "${incrates}" -eq 1 ]; then
+ if [ -z "$line" ]; then
+ incrates=0
+ newcrates
+ echo "$line"
+ fi
+ else
+ echo "${line}"
+ fi
+done 3< "$infile"