]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.factory/src/org/argeo/slc/rpmfactory/core/YumListParser.java
Clarify SLC project structure.
[gpl/argeo-slc.git] / org.argeo.slc.factory / src / org / argeo / slc / rpmfactory / core / YumListParser.java
diff --git a/org.argeo.slc.factory/src/org/argeo/slc/rpmfactory/core/YumListParser.java b/org.argeo.slc.factory/src/org/argeo/slc/rpmfactory/core/YumListParser.java
deleted file mode 100644 (file)
index ee89aa3..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.argeo.slc.rpmfactory.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Set;
-import java.util.StringTokenizer;
-import java.util.TreeSet;
-
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.LineIterator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.slc.SlcException;
-
-/**
- * Reads the output of a 'yum list all' command and interpret the list of
- * packages.
- */
-public class YumListParser implements RpmPackageSet {
-       private final static Log log = LogFactory.getLog(YumListParser.class);
-
-       private Set<String> installed = new TreeSet<String>();
-       /** Not installed but available */
-       private Set<String> installable = new TreeSet<String>();
-
-       private Path yumListOutput;
-
-       public void init() {
-               if (yumListOutput != null) {
-                       try (InputStream in = Files.newInputStream(yumListOutput)) {
-                               load(in);
-                               if (log.isDebugEnabled())
-                                       log.debug(installed.size() + " installed, " + installable.size() + " installable, from "
-                                                       + yumListOutput);
-                       } catch (IOException e) {
-                               throw new SlcException("Cannot initialize yum list parser", e);
-                       }
-               }
-       }
-
-       public Boolean contains(String packageName) {
-               if (installed.contains(packageName))
-                       return true;
-               else
-                       return installable.contains(packageName);
-       }
-
-       protected void load(InputStream in) throws IOException {
-               Boolean readingInstalled = false;
-               Boolean readingAvailable = false;
-               LineIterator it = IOUtils.lineIterator(in, "UTF-8");
-               while (it.hasNext()) {
-                       String line = it.nextLine();
-                       if (line.trim().equals("Installed Packages")) {
-                               readingInstalled = true;
-                       } else if (line.trim().equals("Available Packages")) {
-                               readingAvailable = true;
-                               readingInstalled = false;
-                       } else if (readingAvailable) {
-                               if (Character.isLetterOrDigit(line.charAt(0))) {
-                                       installable.add(extractRpmName(line));
-                               }
-                       } else if (readingInstalled) {
-                               if (Character.isLetterOrDigit(line.charAt(0))) {
-                                       installed.add(extractRpmName(line));
-                               }
-                       }
-               }
-       }
-
-       protected String extractRpmName(String line) {
-               StringTokenizer st = new StringTokenizer(line, " \t");
-               String packageName = st.nextToken();
-               // consider the arch as an extension
-               return FilenameUtils.getBaseName(packageName);
-               // return packageName.split("\\.")[0];
-       }
-
-       public Set<String> getInstalled() {
-               return installed;
-       }
-
-       public Set<String> getInstallable() {
-               return installable;
-       }
-
-       public void setYumListOutput(Path yumListOutput) {
-               this.yumListOutput = yumListOutput;
-       }
-
-}