summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-07-28 20:58:07 (EDT)
committer P. J. McDermott <pjm@nac.net>2013-07-28 20:58:07 (EDT)
commit9cd62660eb30ce4e060116037d3949c7a2d61d60 (patch)
tree8c5819839d59287b525ef4e4a3b0b3eac893aadc
parenteae1ae3539ca0f7b90d079cb47d3e7d77da71f65 (diff)
copy-suite: Implement.
-rw-r--r--lib/cmd/copy-suite.sh47
-rw-r--r--lib/cmd/local.mk3
-rw-r--r--locale/en_US/pro_archman.sh5
3 files changed, 54 insertions, 1 deletions
diff --git a/lib/cmd/copy-suite.sh b/lib/cmd/copy-suite.sh
new file mode 100644
index 0000000..5a5c7a1
--- /dev/null
+++ b/lib/cmd/copy-suite.sh
@@ -0,0 +1,47 @@
+# pro-archman
+# lib/cmd/copy-suite.sh
+# "copy-suite" command
+#
+# Copyright (C) 2013 Patrick "P. J." McDermott
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use suite
+
+cmd_copy_suite_main()
+{
+ local src_suite="${1}"
+ local dst_suite="${2}"
+ local src_chan=
+ local src_dist=
+ local dst_chan=
+ local dst_dist=
+
+ src_chan="${src_suite%/*}"
+ src_dist="${src_suite##*/}"
+ if [ "x${src_chan}" = "x${src_suite}" ]; then
+ src_chan="${conf_incoming_channel}"
+ fi
+ dst_chan="${dst_suite%/*}"
+ dst_dist="${dst_suite##*/}"
+ if [ "x${dst_chan}" = "x${dst_suite}" ]; then
+ dst_chan="${conf_incoming_channel}"
+ fi
+
+ info "$(get_msg 'cmd_copy_suite_copying')" \
+ "${src_chan}" "${src_dist}" "${dst_chan}" "${dst_dist}"
+ copy_suite "${src_chan}" "${src_dist}" "${dst_chan}" "${dst_dist}"
+
+ return 0
+}
diff --git a/lib/cmd/local.mk b/lib/cmd/local.mk
index 60b12e5..d49174a 100644
--- a/lib/cmd/local.mk
+++ b/lib/cmd/local.mk
@@ -5,4 +5,5 @@ pkglibcmd_srcs = \
lib/cmd/help.sh \
lib/cmd/include.sh \
lib/cmd/process-incoming.sh \
- lib/cmd/remove.sh
+ lib/cmd/remove.sh \
+ lib/cmd/copy-suite.sh
diff --git a/locale/en_US/pro_archman.sh b/locale/en_US/pro_archman.sh
index a926ce1..eac7d41 100644
--- a/locale/en_US/pro_archman.sh
+++ b/locale/en_US/pro_archman.sh
@@ -45,6 +45,11 @@ msg_pro_archman_cmd_remove_summary='remove packages from a suite'
msg_pro_archman_cmd_remove_usage='<suite> <source>'
msg_pro_archman_cmd_remove_removing='Removing %s from %s/%s...'
+# lib/cmd/copy-suite.sh
+msg_pro_archman_cmd_copy_suite_summary='copies packages from one suite to another'
+msg_pro_archman_cmd_copy_suite_usage='<source-suite> <destination-suite>'
+msg_pro_archman_cmd_copy_suite_copying='Copying suite %s/%s to suite %s/%s...'
+
# lib/control.sh
msg_pro_archman_control_empty_line='empty line'
msg_pro_archman_control_bad_nv='badly formatted control field'