Skip to content

Commit

Permalink
Add install script and script
Browse files Browse the repository at this point in the history
for downloading and processing
dependencies of maven-based Java projects
  • Loading branch information
mfragkoulis committed Aug 4, 2017
1 parent 4ff6397 commit 1b7cf76
Show file tree
Hide file tree
Showing 4 changed files with 210 additions and 0 deletions.
44 changes: 44 additions & 0 deletions apps/java-apps/GithubReposDownload.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from github import Github
import os
from subprocess import call
import time
import random
import datetime
import re
import sys


def downloadRepo(outputPath, repoName, counter):
fullRepoName = 'https://github.com/' + repoName + '.git'
os.chdir(outputPath)
folderName = repoName.replace("/", "_")
if not os.path.isdir(os.path.join(outputPath, folderName)):
print(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') + ' cloning: ', fullRepoName)
os.mkdir(folderName)
call(['git', 'clone', fullRepoName, folderName])
call(['rm', '-rf', '%s/*' % folderName])
n = random.randint(50,70)
print('On repo No %d: waiting for %d secs' % (counter, n))
time.sleep(n)

g = Github('testSDKGithub', 'Testing1!')
inputFilePath = sys.argv[1]
outputPath = sys.argv[2]
stars_threshold = int(sys.argv[3])
commits_threshold = int(sys.argv[4])
with open(inputFilePath, 'rt', errors='ignore') as f:
lines = f.readlines()
counter = 0

for line in lines[1:]:
match = re.search(r'https://api.github.com/repos/(.+),(\d+),(\d+)$', line)
if match:
repoName = match.group(1)
stars = int(match.group(2))
commits = int(match.group(3))
if not repoName == '' \
and stars >= stars_threshold \
and commits >= commits_threshold:
counter += 1
downloadRepo(outputPath, repoName, counter)

23 changes: 23 additions & 0 deletions apps/java-apps/examine-project.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash

LIBRARIES=('apache' 'google')
BUILDFILES=('build.gradle' 'build.xml' 'pom.xml')

#echo "no of patterns: ${#LIBRARIES[@]}"
#echo "patterns: ${LIBRARIES[@]}"

p=0
for (( p = 0; p<${#LIBRARIES[@]} - 1; p++ ));
do
REGEX+="${LIBRARIES[p]}|"
#echo $REGEX
done

REGEX+="${LIBRARIES[p]}"

#echo $REGEX

find . -name "${BUILDFILES[0]}" \
-o -name "${BUILDFILES[1]}" \
-o -name "${BUILDFILES[2]}" \
| xargs egrep "$REGEX"
100 changes: 100 additions & 0 deletions apps/java-apps/libraries.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
org=org.scala-lang name=scala-compiler rev=2.10.4
org=org.scala-lang name=scala-library rev=2.10.4
org=junit name=junit rev=4.12
org=org.scala-lang name=scala-library rev=2.12.0-M3
org=org.slf4j name=slf4j-api rev=1.7.12
org=log4j name=log4j rev=1.2.17
org=com.google.guava name=guava rev=19.0-rc2
org=ch.qos.logback name=logback-classic rev=1.1.3
org=commons-io name=commons-io rev=2.4
org=org.slf4j name=slf4j-log4j12 rev=1.7.12
org=org.mockito name=mockito-all rev=1.10.19
org=org.apache.commons name=commons-lang3 rev=3.4
org=commons-logging name=commons-logging rev=1.2
org=org.testng name=testng rev=6.9.9
org=org.apache.maven name=maven-plugin-api rev=3.3.3
org=org.springframework name=spring-context rev=4.2.2.RELEASE
org=org.apache.httpcomponents name=httpclient rev=4.5.1
org=org.osgi name=org.osgi.core rev=6.0.0
org=joda-time name=joda-time rev=2.9
org=javax.servlet name=javax.servlet-api rev=3.1.0
org=com.fasterxml.jackson.core name=jackson-databind rev=2.6.3
org=commons-codec name=commons-codec rev=1.10
org=org.springframework name=spring-test rev=4.2.2.RELEASE
org=org.springframework name=spring-core rev=4.2.2.RELEASE
org=org.easymock name=easymock rev=3.4
org=org.scalatest name=scalatest_2.10 rev=3.0.0-M11
org=commons-collections name=commons-collections rev=3.2.1
org=org.codehaus.plexus name=plexus-utils rev=3.0.22
org=com.h2database name=h2 rev=1.4.190
org=org.apache.maven name=maven-project rev=2.2.1
org=com.google.code.gson name=gson rev=2.4
org=org.osgi name=org.osgi.compendium rev=5.0.0
org=org.springframework name=spring-beans rev=4.2.2.RELEASE
org=com.google.code.findbugs name=jsr305 rev=3.0.1
org=org.codehaus.jackson name=jackson-mapper-asl rev=1.9.13
org=org.hamcrest name=hamcrest-library rev=1.3
org=org.springframework name=spring-web rev=4.2.2.RELEASE
org=com.fasterxml.jackson.core name=jackson-core rev=2.6.3
org=com.google.inject name=guice rev=4.0
org=org.codehaus.groovy name=groovy-all rev=2.4.5
org=org.apache.maven name=maven-core rev=3.3.3
org=org.hamcrest name=hamcrest-core rev=1.3
org=commons-beanutils name=commons-beanutils rev=1.9.2
org=ch.qos.logback name=logback-core rev=1.1.3
org=com.google.gwt name=gwt-user rev=2.7.0
org=mysql name=mysql-connector-java rev=5.1.37
org=org.springframework name=spring-webmvc rev=4.2.2.RELEASE
org=com.fasterxml.jackson.core name=jackson-annotations rev=2.6.3
org=javax.enterprise name=cdi-api rev=2.0-EDR1
org=commons-cli name=commons-cli rev=1.3.1
org=javax.mail name=mail rev=1.4.7
org=org.assertj name=assertj-core rev=3.2.0
org=org.apache.ant name=ant rev=1.9.6
org=xerces name=xercesImpl rev=2.11.0
org=org.hibernate name=hibernate-core rev=5.0.3.Final
org=org.apache.maven name=maven-artifact rev=3.3.3
org=org.apache.derby name=derby rev=10.12.1.1
org=org.hsqldb name=hsqldb rev=2.3.3
org=org.hibernate name=hibernate-entitymanager rev=5.0.3.Final
org=org.freemarker name=freemarker rev=2.3.23
org=javax.validation name=validation-api rev=1.1.0.Final
org=cglib name=cglib-nodep rev=3.2.0
org=org.springframework name=spring-jdbc rev=4.2.2.RELEASE
org=com.sun.xml.bind name=jaxb-impl rev=2.2.11
org=org.hibernate name=hibernate-validator rev=5.2.2.Final
org=com.thoughtworks.xstream name=xstream rev=1.4.8
org=org.springframework name=spring-aop rev=4.2.2.RELEASE
org=org.jboss.logging name=jboss-logging rev=3.3.0.Final
org=org.mortbay.jetty name=jetty rev=6.1.26
org=commons-dbcp name=commons-dbcp rev=1.4
org=commons-fileupload name=commons-fileupload rev=1.3.1
org=org.json name=json rev=20150729
org=org.easytesting name=fest-assert rev=1.4
org=org.springframework name=spring-tx rev=4.2.2.RELEASE
org=org.eclipse.jetty name=jetty-servlet rev=9.3.5.v20151012
org=org.scoverage name=scalac-scoverage-plugin_2.11 rev=1.1.1
org=org.apache.maven name=maven-model rev=3.3.3
org=org.spockframework name=spock-core rev=1.0-groovy-2.4
org=org.projectlombok name=lombok rev=1.16.6
org=cglib name=cglib rev=3.2.0
org=org.springframework name=spring-context-support rev=4.2.2.RELEASE
org=dom4j name=dom4j rev=1.6.1
org=org.springframework name=spring-orm rev=4.2.2.RELEASE
org=org.scalacheck name=scalacheck_2.10 rev=1.12.5
org=org.powermock name=powermock-module-junit4 rev=1.6.3
org=org.apache.velocity name=velocity rev=1.7
org=org.apache.httpcomponents name=httpcore rev=4.4.4
org=commons-configuration name=commons-configuration rev=1.10
org=asm name=asm rev=3.3.1
org=org.apache.felix name=org.apache.felix.scr.annotations rev=1.9.12
org=org.easymock name=easymockclassextension rev=3.2
org=org.aspectj name=aspectjrt rev=1.8.7
org=org.apache.camel name=camel-core rev=2.16.0
org=xmlunit name=xmlunit rev=1.6
org=org.javassist name=javassist rev=3.20.0-GA
org=com.google.protobuf name=protobuf-java rev=2.6.1
org=org.codehaus.plexus name=plexus-container-default rev=1.6
org=org.hibernate.javax.persistence name=hibernate-jpa-2.0-api rev=1.0.1.Final
org=org.reflections name=reflections rev=0.9.10
org=com.sun.jersey name=jersey-server rev=1.19
43 changes: 43 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash

# Data folder (TODO: add sample apk file)
if ! [ -d 'data' ]; then
mkdir data
fi
if ! [ -d 'data/out' ]; then
mkdir data/out
fi

if ! [ -d 'libs' ]; then
mkdir libs
fi
cd libs

# Java 1.7 and Python 2.7
#sudo apt-get install -y openjdk-7-jdk openjdk-7-jre python2.7 git wget

if ! [ -f 'baksmali-2.0.3.jar' ]; then
wget https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.0.3.jar
fi

# Android
if ! [ -f 'android-sdk_r23-linux.tgz' ]; then
wget http://dl.google.com/android/android-sdk_r23-linux.tgz
fi
if ! [ -d 'android-sdk-linux' ]; then
tar -xvf android-sdk_r23-linux.tgz
cd android-sdk-linux/tools
# Type 'y' to accept the license agreement (no -y flag unfortunately)
./android update sdk --no-ui -a -t 'android-14,android-15,android-16,android-17,android-18,
android-19,android-20,android-21,android-22,android-23'
fi

# Set paths
#echo 'export PATH=$PATH:/opt/android-sdk-linux/platform-tools' >> /etc/profile.d/android.sh
#echo 'export ANDROID_TOOLS=/opt/android-sdk-linux' >> /etc/profile.d/android.sh
#source /etc/profile.d/android.sh
# Install sdks
#cd /opt/android-sdk-linux/tools
#./android list sdk --all
#./android update -u -t 1,2,4,26,103

0 comments on commit 1b7cf76

Please sign in to comment.