Skip to content

Commit

Permalink
Merge pull request #62 from rafaelmotaalves/keep-project
Browse files Browse the repository at this point in the history
Adiciona opção de manter projetos depois da análise
  • Loading branch information
pauloborba authored Nov 11, 2019
2 parents 265a559 + 90d18cf commit 5054986
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 6 deletions.
5 changes: 2 additions & 3 deletions src/main/app/MiningFramework.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class MiningFramework {
private OutputProcessor outputProcessor

static public Arguments arguments
private final String LOCAL_PROJECT_PATH = 'localProject'
private final String LOCAL_PROJECT_PATH = 'clonedRepositories'
private final String LOCAL_RESULTS_REPOSITORY_PATH = System.getProperty('user.home')

@Inject
Expand Down Expand Up @@ -103,8 +103,7 @@ class MiningFramework {
Thread [] workers = new Thread[numOfThreads]

for (int i = 0; i < numOfThreads; i++) {
String workerPath = "${LOCAL_PROJECT_PATH}/worker${i}"
Runnable worker = new MiningWorker(dataCollectors, commitFilter, projectQueue, workerPath);
Runnable worker = new MiningWorker(dataCollectors, commitFilter, projectQueue, LOCAL_PROJECT_PATH);
workers[i] = new Thread(worker)
workers[i].start();
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/app/MiningWorker.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class MiningWorker implements Runnable {
printProjectInformation (project)

if (project.isRemote()) {
cloneRepository(project, baseDir)
cloneRepository(project, "${baseDir}/${project.getName()}")
} else {
checkForUnstagedChanges(project);
}
Expand All @@ -57,6 +57,10 @@ class MiningWorker implements Runnable {
if(arguments.isPushCommandActive()) // Will push.
pushResults(project, arguments.getResultsRemoteRepositoryURL())

if (!arguments.getKeepProjects()) {
FileManager.delete(new File(project.getPath()))
}

endProjectAnalysis (project)
} catch (NoSuchElementException e) {
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/arguments/ArgsParser.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class ArgsParser {
this.cli.p(longOpt: 'post-script', args:1, argName: 'post script', 'Specify a bash script to be run after output is ready')
this.cli.a(longOpt: 'access-key',args:1, argName: 'access key', 'Specify the access key of the git account used')
this.cli.t(longOpt: 'threads', args: 1, argName: 'threads', "Number of cores used in analysis (default: 1)")
this.cli.k(longOpt: 'keep-projects', argName: 'keep projects', 'Keep projects in disk after analysis')
}


Expand Down Expand Up @@ -98,7 +99,6 @@ class ArgsParser {
if(!repositoryExists(this.options.push))
throw new InvalidArgsException('Inexistent remote git repository.')

println this.options.push
args.setResultsRemoteRepositoryURL(this.options.push)
}

Expand All @@ -113,6 +113,10 @@ class ArgsParser {
if (this.options.t) {
args.setNumOfThreads(this.options.t.toInteger())
}

if (this.options.k) {
args.setKeepProjects()
}
}

private boolean repositoryExists(String repositoryURL) {
Expand Down
11 changes: 10 additions & 1 deletion src/main/arguments/Arguments.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ class Arguments {
private String resultsRemoteRepositoryURL
private String postScript
private String accessKey
private boolean useForks
private int numOfThreads
private boolean keepProjects

Arguments() {
isHelp = false
Expand All @@ -26,6 +26,7 @@ class Arguments {
postScript = ''
accessKey = ''
numOfThreads = 1
keepProjects = false
}

void setNumOfThreads (int numOfThreads) {
Expand Down Expand Up @@ -68,6 +69,10 @@ class Arguments {
this.accessKey = accessKey
}

void setKeepProjects() {
this.keepProjects = true;
}

int getNumOfThreads() {
return this.numOfThreads
}
Expand Down Expand Up @@ -96,6 +101,10 @@ class Arguments {
return isHelp
}

boolean getKeepProjects () {
return keepProjects
}

String getResultsRemoteRepositoryURL() {
return resultsRemoteRepositoryURL
}
Expand Down

0 comments on commit 5054986

Please sign in to comment.