Skip to content

Latest commit

 

History

History
71 lines (53 loc) · 3.07 KB

README.md

File metadata and controls

71 lines (53 loc) · 3.07 KB

jargo

jargo is a simple library allowing access to information contained in a Java JAR file.

It is a simple wrapper to the zip libraries.

godocs

It has two functions:

func GetManifest(filename string) (error, *Manifest)

It returns a pointer to a Manifest (map[string]string) which is the key:values pairs from the META-INF/MANIFEST.MF file

func GetJarInfo(filename string) (error, *JarInfo)

GetJarInfo extracts various info from a Java JAR file:

  • It extracts the Manifest (like GetManifest)
  • It extracts an array of the filenames in the JAR file
  • It returns a pointer to a JarInfo struct:
type JarInfo struct {
	*Manifest
	Files []string
}

###Example Usage### Using Lucene analyzer jar file from: http://central.maven.org/maven2/org/apache/lucene/lucene-analyzers-stempel/5.0.0/lucene-analyzers-stempel-5.0.0.jar

package main

import (
	"fmt"
	"github.com/gnewton/jargo"
		"log"
)

func main() {
	err, manifest := jargo.GetManifest("lucene-analyzers-stempel-5.0.0.jar")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(manifest)

	fmt.Println()

	err, jar := jargo.GetJarInfo("lucene-analyzers-stempel-5.0.0.jar")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%+v\n", jar)
}

Output:

&map[Ant-Version:Apache Ant 1.8.3 Specification-Version:5.0.0 Specification-Vendor:The Apache Software Foundation Implementation-Title:org.apache.lucene X-Compile-Source-JDK:1.7 X-Compile-Target-JDK:1.7 Manifest-Version:1.0 Created-By:1.7.0_55-b13 (Oracle Corporation) Extension-Name:org.apache.lucene Specification-Title:Lucene Search Engine: analyzers-stempel Implementation-Version:5.0.0 1659987 - anshumgupta - 2015-02-15 12:20 :34 Implementation-Vendor:The Apache Software Foundation]

&{Manifest:0xc20804c018 Files:[META-INF/ META-INF/MANIFEST.MF META-INF/services/ org/ org/apache/ org/apache/lucene/ org/apache/lucene/analysis/ org/apache/lucene/analysis/pl/ org/apache/lucene/analysis/stempel/ org/egothor/ org/egothor/stemmer/ META-INF/services/org.apache.lucene.analysis.util.TokenFilterFactory org/apache/lucene/analysis/pl/PolishAnalyzer$DefaultsHolder.class org/apache/lucene/analysis/pl/PolishAnalyzer.class org/apache/lucene/analysis/pl/stemmer_20000.tbl org/apache/lucene/analysis/pl/stopwords.txt org/apache/lucene/analysis/stempel/StempelFilter.class org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.class org/apache/lucene/analysis/stempel/StempelStemmer.class org/egothor/stemmer/Cell.class org/egothor/stemmer/Compile.class org/egothor/stemmer/Diff.class org/egothor/stemmer/DiffIt.class org/egothor/stemmer/Gener.class org/egothor/stemmer/Lift.class org/egothor/stemmer/MultiTrie.class org/egothor/stemmer/MultiTrie2.class org/egothor/stemmer/Optimizer.class org/egothor/stemmer/Optimizer2.class org/egothor/stemmer/Reduce$Remap.class org/egothor/stemmer/Reduce.class org/egothor/stemmer/Row.class org/egothor/stemmer/Trie$StrEnum.class org/egothor/stemmer/Trie.class META-INF/LICENSE.txt META-INF/NOTICE.txt]}

###License###

The MIT License (MIT)
Copyright (c) 2015 Glen Newton gnewton

See LICENSE file.