Browse Source

Git update detection and basic build script running.

Eeems 10 years ago
parent
commit
59bbcb9153
3 changed files with 76 additions and 1 deletions
  1. 5 1
      bin/package-add
  2. 53 0
      bin/repo-build
  3. 18 0
      configure.sh

+ 5 - 1
bin/package-add

@@ -9,7 +9,11 @@ if [[ "$1" != "" ]];then
 	else
 		mkdir -p src/$1/src;
 	fi;
-	touch src/$1/build.sh
+	if [[ ! -f src/$1/build.sh ]];then
+		touch src/$1/build.sh;
+		echo "#!/bin/bash\\necho -e \"\\tBuilt.\"" > src/$1/build.sh;
+	fi;
+	chmod +x src/$1/build.sh
 	echo -e "Type:\n (1) script\n (2) git\n (3) svn";
 	while [[ ! $btype =~ ^1|2|3$ ]]; do
 		read btype;

+ 53 - 0
bin/repo-build

@@ -1 +1,54 @@
 #!/bin/bash
+if [[ "$1" != "" ]];then
+	override=true;
+else
+	override=false;
+fi;
+root="$(dirname $BASH_SOURCE)/..";
+. $root/etc/packages.conf
+for val in "${packages[@]}"; do
+	unset package;
+	declare -A package;
+	eval "package=($val)";
+	name=${package[name]};
+	echo "Checking $name";
+	case ${package[type]} in
+		git)
+			echo -e "\tChecking for updates";
+			cd $root/src/$name/src;
+			git reset --hard > /dev/null;
+			expect -c "
+				set timeout 1
+				log_user 0
+				spawn git pull
+					expect \"Already up-to-date.\" {
+						exit 1
+					}
+					log_user 1
+					expect eof {
+						exit 0
+					}
+				}";
+			rc=$?;
+			if [[ $rc == 0 ]];then
+				build=true;
+			else
+				build=false;
+			fi;
+		;;
+		*)
+			echo -e "\tType '${package[type]}' not implemented.";
+			build=false;
+	esac;
+	if $build;then
+		echo -e "\tUpdated";
+	else
+		echo -e "\tUp to Date";
+	fi;
+	cd $root/src/$name;
+	if ! ls $name-*-i686.pkg.tar.xz &> /dev/null ||  $build || $override;then
+		echo -e "\tBuilding";
+		./build.sh
+	fi;
+	echo -e "\tDone"
+done;

+ 18 - 0
configure.sh

@@ -1 +1,19 @@
 #!/bin/bash
+commands=('expect' 'ssh' 'scp' 'ftp' 'rsync' 'makepkg' 'make' 'git' 'gcc' 'g++');
+installed(){
+	echo -n -e "Checking for $1...";
+	command -v $1 >/dev/null 2>&1 || {
+		echo -e "\e[31;01mnot installed\e[0m"; >&2;
+		echo "Please install rsync to continue.";
+		exit 1;
+	};
+	echo -e "\e[32;01minstalled\e[0m";
+}
+# Check to see if all necessary commands exist
+for command in "${commands[@]}"; do
+	installed $command;
+done;
+echo "Check done, entering install shell.";
+echo -n "Available install commands: ";
+ls $(dirname $BASH_SOURCE)/bin/;
+bin/install-shell;