]> gitweb.fluxo.info Git - simplepkg.git/commitdiff
mkbuild: adding import routines
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Mon, 19 Jan 2009 15:38:38 +0000 (15:38 +0000)
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Mon, 19 Jan 2009 15:38:38 +0000 (15:38 +0000)
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@755 04377dda-e619-0410-9926-eae83683ac58

trunk/lib/common.sh
trunk/src/createpkg
trunk/src/mkbuild

index 22ac92408903f6c3fae6e07bb58b791ae826f43b..d1f16c6bd7ac276e74677f9412811ac65268b897 100644 (file)
@@ -949,6 +949,64 @@ function check_and_create_svn_repo {
 
 }
 
+function repository_import {
+
+  # import a folder into a subversion repository
+  # usage: repository_import <folder> <repository>
+
+  local folder="$1" oldfolder
+  local repository="$2" repository_type repository_path
+
+  if [ ! -d "$folder" ] || [ -z "$repository" ]; then
+    EXIT_CODE="1"
+    return $EXIT_CODE
+  fi
+
+  if ! check_svn_repo $repository; then
+    echo "Invalid repository $repository, aborting."
+    EXIT_CODE="1"
+    return $EXIT_CODE
+  fi
+
+  if ! echo $repository | grep -q ":"; then
+    repository="file://$repository"
+  fi
+
+  mkdir -p $folder
+
+  if [ -d "$folder/.svn" ]; then
+    echo "Packages folder $folder seens to be already under revision control, aborting."
+    EXIT_CODE="1"
+    return $EXIT_CODE
+  fi
+
+  check_and_create_svn_repo $repository
+  if [ "$?" != "0" ]; then
+    EXIT_CODE="1"
+    return $EXIT_CODE
+  fi
+
+  repository_path="`echo $repository | cut -d : -f 2`"
+  if [ -d "$repository_path" ]; then
+    chown_svn $repository_path && chgrp_svn $repository_path
+  fi
+
+  echo "Importing files from $folder into $repository..."
+  su_svn import $folder $repository -m "initial import"
+  if [ "$?" == "0" ]; then
+    echo "Making $folder a working copy of $repository..."
+    oldfolder="$(mktemp -d $(echo $folder | sed -e 's/\/*$//g').XXXXXX)"
+    echo "Backing up old $folder at $oldfolder..."
+    mv $folder $oldfolder
+    chown_svn `dirname $folder` && chgrp_svn `dirname $folder`
+    su_svn checkout $repository $folder
+  else
+    EXIT_CODE="1"
+    return $EXIT_CODE
+  fi
+
+}
+
 # -----------------------------------------------
 #           update jail functions
 # -----------------------------------------------
index a02c8c8c946eadc54f56ec39b65da69ebd3dbd33..0a67648ef29d237d6633e3caf906188c8b91bf74 100644 (file)
@@ -272,7 +272,7 @@ function repository_checkout {
 
   if [ -d "$PACKAGES_DIR" ]; then
     oldfolder="$(mktemp -d $(echo $PACKAGES_DIR | sed -e 's/\/*$//g').XXXXXX)"
-    echo "Moving old $PACKAGES_DIR to $oldfolder..."
+    echo "Backing up old $folder at $oldfolder..."
     mv $PACKAGES_DIR $oldfolder
   fi
 
@@ -327,58 +327,21 @@ function repository_status {
 
 }
 
-function repository_import {
+function binary_repository_import {
 
   # import packages into a subversion repository
-  # usage: repository_import [repository]
+  # usage: binary_repository_import [repository]
 
-  local repository="$1" repository_type repository_path packages_dir
+  local repository="$1" folder
 
   if [ -z "$repository" ]; then
     repository="file:////var/svn/packages"
   fi
 
-  if ! check_svn_repo $repository; then
-    echo "Invalid repository $repository, aborting."
-    EXIT_CODE="1"
-    return $EXIT_CODE
-  fi
-
-  if ! echo $repository | grep -q ":"; then
-    repository="file://$repository"
-  fi
-
-  repository_path="`echo $repository | cut -d : -f 2`"
-
   # eval again so it doesn't include repository style information
-  packages_dir="`eval_parameter PACKAGES_DIR /var/simplepkg/repos`"
-  mkdir -p $packages_dir
+  folder="`eval_parameter PACKAGES_DIR /var/simplepkg/repos`"
 
-  if [ -d "$packages_dir/.svn" ]; then
-    echo "Packages folder $packages_dir seens to be already under revision control, aborting."
-    EXIT_CODE="1"
-    return $EXIT_CODE
-  fi
-
-  check_and_create_svn_repo $repository
-  if [ "$?" != "0" ]; then
-    EXIT_CODE="1"
-    return $EXIT_CODE
-  fi
-
-  chown_svn $repository_path && chgrp_svn $repository_path
-
-  echo "Importing packages from $packages_dir into $repository..."
-  su_svn import $packages_dir $repository -m "importing binary packages"
-  if [ "$?" == "0" ]; then
-    echo "Making $packages_dir a working copy of $repository..."
-    rm -rf $packages_dir
-    chown_svn `dirname $packages_dir` && chgrp_svn `dirname $packages_dir`
-    su_svn checkout $repository $packages_dir
-  else
-    EXIT_CODE="1"
-    return $EXIT_CODE
-  fi
+  repository_import $folder $repository
 
 }
 
@@ -519,6 +482,27 @@ function update_metadata {
 
 }
 
+function list_packages {
+
+  # TODO
+  true
+
+}
+
+function delete_packages {
+
+  # TODO
+  true
+
+}
+
+function sign_package {
+
+  # TODO
+  true
+
+}
+
 #---------------------------------------------------
 #                 Starting createpkg
 #---------------------------------------------------
@@ -638,7 +622,7 @@ case $1 in
   ;;
   '--import')
     shift
-    repository_import $*
+    binary_repository_import $*
     exit $EXIT_CODE
   ;;
   '--checkout')
index c34803893294cfb9702baa903eb06e50a398d24b..00d6ac2f763b3bf31616a0b34de7b8f3b0f99209 100755 (executable)
@@ -78,6 +78,12 @@ ${red}DESCRIPTION${normal}
             commit .mkbuild in svn mkbuild tree
         ${red}-ca${normal}, ${red}--commit-all${normal}
             commit SlackBuild and .mkbuild files in svn tree
+        ${red}-im${normal}, ${red}--import-mkbuilds${normal}
+            import mkbuild repository in a svn tree
+        ${red}-is${normal}, ${red}--import-slackbuilds${normal}
+            import SlackBuild repository in a svn tree
+        ${red}-ia${normal}, ${red}-i${normal}, ${red}--import-all${normal}, ${red}--import${normal}
+            import mkbuild and SlackBuild repositories in a svn tree
         ${red}-h${normal}, ${red}--help${normal}
             this help mesage
         ${red}-n${normal}, ${red}--new${normal} ${green}<mkbuild_name>${normal}
@@ -171,6 +177,24 @@ function set_parameters {
         MKBUILD_NAME="${2//.mkbuild}.mkbuild"
         break # we need to break otherwise commit log message is evalued
       ;;
+      '-is'|'--import-slackbuilds')
+        # Commit SlackBuild file
+        ACTION="import_slackbuilds"
+        MKBUILD_NAME="${2//.mkbuild}.mkbuild"
+        break # we need to break otherwise specific arguments are evalued
+      ;;
+      '-im'|'--import-mkbuilds')
+        # import mkbuild file
+        ACTION="import_mkbuilds"
+        MKBUILD_NAME="${2//.mkbuild}.mkbuild"
+        break # we need to break otherwise specific arguments are evalued
+      ;;
+      '-ia'|'-i'|'--import-all'|'--import')
+        # Commit SlackBuild and mkbuild file
+        ACTION="import_all"
+        MKBUILD_NAME="${2//.mkbuild}.mkbuild"
+        break # we need to break otherwise specific arguments are evalued
+      ;;
       '-um'|'--update-manifest')
         ACTION="update_manifest"
         MKBUILD_NAME="${2//.mkbuild}.mkbuild"
@@ -692,6 +716,36 @@ function submit_cleanup {
 
 }
 
+function import_mkbuilds { 
+
+  # import mkbuilds into a subversion repository
+  # usage: repository_import [repository]
+
+  local repository="$1"
+
+  if [ -z "$repository" ]; then
+    repository="file:////var/svn/mkbuilds"
+  fi
+
+  repository_import $MKBUILDS_DIR $repository  
+
+}
+
+function import_slackbuilds {
+
+  # import SlackBuilds into a subversion repository
+  # usage: repository_import [repository]
+
+  local repository="$1"
+
+  if [ -z "$repository" ]; then
+    repository="file:////var/svn/slackbuilds"
+  fi
+
+  repository_import $SLACKBUILDS_DIR $repository  
+
+}
+
 # ----------------------------------------------------------------
 #                     general functions                           
 # ----------------------------------------------------------------
@@ -1398,6 +1452,20 @@ function edit_mkbuild {
 
 }
 
+function delete_mkbuilds {
+
+  # TODO
+  true
+
+}
+
+function delete_slackbuilds {
+
+  # TODO
+  true
+
+}
+
 # ----------------------------------------------------------------
 
 #=============================
@@ -1470,6 +1538,19 @@ if [ ! -z "$MKBUILD_NAME" ]; then
       commit_changes $SLACKBUILDS_DIR $MKBUILD_BASENAME: $*
       commit_changes $MKBUILDS_DIR $MKBUILD_BASENAME: $*
     ;;
+    'import_slackbuilds')
+      shift
+      import_slackbuilds $*
+    ;;
+    'import_mkbuilds')
+      shift
+      import_mkbuilds $*
+    ;;
+    'import_all')
+      shift
+      import_mkbuilds $*
+      import_slackbuilds $*
+    ;;
     'new')
       create_mkbuild
     ;;