Skip to content
Snippets Groups Projects
Commit a3e4be4b authored by Eric Vidal's avatar Eric Vidal :speech_balloon:
Browse files

check first if svc or db are already initiated

parent 21ec1431
No related branches found
No related tags found
No related merge requests found
...@@ -61,7 +61,7 @@ static inline void info_help (void) ...@@ -61,7 +61,7 @@ static inline void info_help (void)
int main(int argc, char const *const *argv, char const *const *envp) int main(int argc, char const *const *argv, char const *const *envp)
{ {
int r, both, classic, db ; int r, classic, db ;
uid_t owner ; uid_t owner ;
int wstat ; int wstat ;
...@@ -76,7 +76,7 @@ int main(int argc, char const *const *argv, char const *const *envp) ...@@ -76,7 +76,7 @@ int main(int argc, char const *const *argv, char const *const *envp)
stralloc scandir = STRALLOC_ZERO ; stralloc scandir = STRALLOC_ZERO ;
stralloc livetree = STRALLOC_ZERO ; stralloc livetree = STRALLOC_ZERO ;
both = classic = db = 0 ; classic = db = 0 ;
PROG = "66-init" ; PROG = "66-init" ;
{ {
...@@ -96,7 +96,7 @@ int main(int argc, char const *const *argv, char const *const *envp) ...@@ -96,7 +96,7 @@ int main(int argc, char const *const *argv, char const *const *envp)
break ; break ;
case 'c' : classic = 1 ; break ; case 'c' : classic = 1 ; break ;
case 'd' : db = 1 ; break ; case 'd' : db = 1 ; break ;
case 'B' : both = 1 ; break ; case 'B' : classic = 1 ; db = 1 ; break ;
default : exitusage() ; default : exitusage() ;
} }
} }
...@@ -162,22 +162,31 @@ int main(int argc, char const *const *argv, char const *const *envp) ...@@ -162,22 +162,31 @@ int main(int argc, char const *const *argv, char const *const *envp)
memcpy(svdir + svdirlen, SS_SVC ,SS_SVC_LEN) ; memcpy(svdir + svdirlen, SS_SVC ,SS_SVC_LEN) ;
svdir[svdirlen + SS_SVC_LEN] = 0 ; svdir[svdirlen + SS_SVC_LEN] = 0 ;
/** svc already initiated */
r = scan_mode(scandir.s,S_IFDIR) ;
if (r < 0) strerr_dief2x(111,scandir.s," conflicted format") ;
if (r)
{
strerr_warni2x(treename," svc services already initiated") ;
classic = 0 ;
}
/** db already initiated? */
if (db_ok(livetree.s,treename))
{
strerr_warni2x(treename," db already initiated") ;
db = 0 ;
}
/** svc service work */ /** svc service work */
if (classic || both) if (classic)
{ {
r = scan_mode(scandir.s,S_IFDIR) ;
if (r < 0) strerr_dief2x(111,scandir.s," conflicted format") ;
if (r)
{
strerr_warni2x(treename," svc services already initiated") ;
return 0 ;
}
VERBO2 strerr_warni5x("copy svc service from ",svdir," to ",scandir.s," ...") ; VERBO2 strerr_warni5x("copy svc service from ",svdir," to ",scandir.s," ...") ;
if (!hiercopy(svdir,scandir.s)) strerr_diefu4sys(111,"copy: ",svdir," to: ",scandir.s) ; if (!hiercopy(svdir,scandir.s)) strerr_diefu4sys(111,"copy: ",svdir," to: ",scandir.s) ;
} }
/** rc services work */ /** rc services work */
if (db || both) if (db)
{ {
/** we assume that 66-scandir was launched previously because a db /** we assume that 66-scandir was launched previously because a db
...@@ -185,14 +194,7 @@ int main(int argc, char const *const *argv, char const *const *envp) ...@@ -185,14 +194,7 @@ int main(int argc, char const *const *argv, char const *const *envp)
* if not, exist immediately */ * if not, exist immediately */
r = scandir_ok(scandir.s) ; r = scandir_ok(scandir.s) ;
if (r != 1) strerr_dief3x(111,"scandir: ",scandir.s," is not running") ; if (r != 1) strerr_dief3x(111,"scandir: ",scandir.s," is not running") ;
/** db already initiated? */
if (db_ok(livetree.s,treename))
{
strerr_warni2x(treename," db already initiated") ;
return 0 ;
}
memcpy(svdir + svdirlen,SS_DB,SS_DB_LEN) ; memcpy(svdir + svdirlen,SS_DB,SS_DB_LEN) ;
memcpy(svdir + svdirlen + SS_DB_LEN, "/", 1) ; memcpy(svdir + svdirlen + SS_DB_LEN, "/", 1) ;
memcpy(svdir + svdirlen + SS_DB_LEN + 1, treename,treenamelen) ; memcpy(svdir + svdirlen + SS_DB_LEN + 1, treename,treenamelen) ;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment