summaryrefslogtreecommitdiff
path: root/net-misc/sitecopy/files/sitecopy-0.16.6-01-remote-dynamic-rc.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /net-misc/sitecopy/files/sitecopy-0.16.6-01-remote-dynamic-rc.patch
reinit the tree, so we can have metadata
Diffstat (limited to 'net-misc/sitecopy/files/sitecopy-0.16.6-01-remote-dynamic-rc.patch')
-rw-r--r--net-misc/sitecopy/files/sitecopy-0.16.6-01-remote-dynamic-rc.patch134
1 files changed, 134 insertions, 0 deletions
diff --git a/net-misc/sitecopy/files/sitecopy-0.16.6-01-remote-dynamic-rc.patch b/net-misc/sitecopy/files/sitecopy-0.16.6-01-remote-dynamic-rc.patch
new file mode 100644
index 000000000000..803dc50b0423
--- /dev/null
+++ b/net-misc/sitecopy/files/sitecopy-0.16.6-01-remote-dynamic-rc.patch
@@ -0,0 +1,134 @@
+From: Jesus Climent <jesus dot climent at hispalinux dot es>
+Subject: A patch for generating dynamic rc files
+
+diff -u sitecopy-0.16.3-orig/src/console_fe.c sitecopy-0.16.3/src/console_fe.c
+--- sitecopy-0.16.3-orig/src/console_fe.c 2006-10-27 18:55:19.000000000 +0530
++++ sitecopy-0.16.3/src/console_fe.c 2006-10-27 18:39:06.000000000 +0530
+@@ -155,7 +155,8 @@
+ show_progress, /* Do they want the %-complete messages */
+ prompting, /* Did they say --prompting? */
+ keepgoing, /* Did they say --keep-going? */
+- dry_run; /* Did they say --dry-run? */
++ dry_run, /* Did they say --dry-run? */
++ createremoteroot=false; /* Did they say --create-remote? */
+
+ /* Functions prototypes */
+ static void init(int, char **);
+@@ -222,9 +223,9 @@
+ exit(-1);
+ }
+
+- for (current=all_sites; current!=NULL; current=current->next) {
++ for (current=all_sites; current!=NULL; current=current->next) {
+
+- if (current->use_this || allsites) {
++ if (current->use_this || allsites) {
+ if (!listflat && quiet == 0) {
+ /* Display the banner line */
+ const char *str_action = _(actions[action].doing);
+@@ -507,6 +508,9 @@
+ }
+ } break;
+ #endif
++ case 'x':
++ createremoteroot = true;
++ break;
+ case 'y':
+ prompting = true;
+ break;
+@@ -1210,7 +1214,8 @@
+ int ret = 0, verify_removed;
+
+ /* Set the options */
+- site->keep_going = keepgoing;
++ site->keep_going = keepgoing;
++ site->create_remote_root = createremoteroot;
+
+ switch (act) {
+ case action_update:
+@@ -1354,6 +1359,7 @@
+ " -p, --storepath=PATH Use alternate site storage directory\n"
+ " -y, --prompting Request confirmation before making each update\n"
+ " -a, --allsites Perform the operation on ALL defined sites\n"
++" -x, --create-remote Create root for remote site\n"
+ " -k, --keep-going Carry on an update regardless of errors\n"
+ " -o, --show-progress Display total percentage file transfer complete\n"
+ " -q, --quiet Be quiet while performing the operation\n"
+diff -u sitecopy-0.16.3-orig/src/sites.c sitecopy-0.16.3/src/sites.c
+--- sitecopy-0.16.3-orig/src/sites.c 2006-03-02 01:08:21.000000000 +0530
++++ sitecopy-0.16.3/src/sites.c 2006-10-27 19:12:30.000000000 +0530
+@@ -94,7 +94,6 @@
+ struct site_file *current;
+ char *full_local;
+ int ret;
+-
+ ret = 0;
+
+ for_each_file(current, site) {
+@@ -312,11 +311,52 @@
+ free(full_remote);
+ }
+
++static int create_remote_root_dirs(struct site *site, void *session)
++{
++ char *buffer;
++ int i,j=0,ret=1,flag=1;
++
++ buffer = (char *) calloc(strlen(site->remote_root)+1,sizeof(char));
++
++ buffer[j++] = '/';
++
++ for( i=1 ; site->remote_root[i] != '\0' ; i++ )
++ {
++ if (site->remote_root[i] == '/')
++ flag = 0;
++
++ if (flag)
++ buffer[j++] = site->remote_root[i];
++ else
++ if (j > 0)
++ {
++ buffer[j] = '\0';
++ ret = CALL(dir_create)(session, buffer);
++
++ if (ret != SITE_OK)
++ ret = 0;
++
++ buffer[j++] = '/';
++ flag=1;
++ }
++ }
++
++ return ret;
++}
++
+ /* Create new directories and change permissions on existing directories. */
+ static int update_create_directories(struct site *site, void *session)
+ {
+ struct site_file *current;
+- int ret = 0;
++ int ret = 0, ret_root_dir;
++
++ if (site->create_remote_root) /* We create remote init struct before updating the whole stuff */
++ {
++ ret_root_dir = create_remote_root_dirs(site,session);
++
++ if (!ret_root_dir)
++ fe_warning (_("I couldn't create some dir. already exists?"),NULL,NULL);
++ }
+
+ for_each_file(current, site) {
+ if ((current->type == file_dir)
+diff -u sitecopy-0.16.3-orig/src/sites.h sitecopy-0.16.3/src/sites.h
+--- sitecopy-0.16.3-orig/src/sites.h 2006-02-04 17:46:36.000000000 +0530
++++ sitecopy-0.16.3/src/sites.h 2006-10-27 18:39:06.000000000 +0530
+@@ -381,6 +381,8 @@
+ char *rsh_cmd;
+ char *rcp_cmd;
+
++ unsigned int create_remote_root:1; /* to create remote root in case it doesn't exist */
++
+ unsigned int nodelete; /* whether to delete any files remotely */
+ unsigned int checkmoved; /* whether to check for moved files */
+ unsigned int checkrenames; /* whether to check for renamed files */
+