Compare commits

...

16 commits
0.4 ... 0.17

61 changed files with 284 additions and 220 deletions

View file

@ -2,21 +2,21 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.1.jar" sourcepath="lib/commons-lang3-3.1-sources.jar"/>
<classpathentry kind="lib" path="lib/joda-time-2.3.jar" sourcepath="lib/joda-time-2.3-sources.jar"/>
<classpathentry kind="lib" path="lib/devinsy-strings-0.4.0.jar" sourcepath="lib/devinsy-strings-0.4.0-sources.zip"/>
<classpathentry kind="lib" path="lib/Logs/log4j-1.2.17.jar" sourcepath="lib/Logs/log4j-1.2.17-source.zip"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-api-1.7.5.jar" sourcepath="lib/Logs/slf4j-api-1.7.5-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-log4j12-1.7.5.jar" sourcepath="lib/Logs/slf4j-log4j12-1.7.5-sources.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/hamcrest-core-1.3.jar" sourcepath="lib/UnitTesting/hamcrest-core-1.3-sources.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/junit-4.11.jar" sourcepath="lib/UnitTesting/junit-4.11-sources.jar"/>
<classpathentry kind="lib" path="lib/devinsy-cmdexec-0.4.1.jar" sourcepath="lib/devinsy-cmdexec-0.4.1-sources.zip"/>
<classpathentry kind="lib" path="lib/commons-io-2.5.jar" sourcepath="lib/commons-io-2.5-src.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="lib/Logs/log4j-1.2.17.jar" sourcepath="lib/Logs/log4j-1.2.17-source.zip"/>
<classpathentry kind="lib" path="lib/UnitTesting/hamcrest-core-1.3.jar" sourcepath="lib/UnitTesting/hamcrest-core-1.3-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-api-1.7.25.jar" sourcepath="lib/Logs/slf4j-api-1.7.25-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-log4j12-1.7.25.jar" sourcepath="lib/Logs/slf4j-log4j12-1.7.25-sources.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/junit-4.12.jar" sourcepath="lib/Logs/log4j-1.2.17-source.zip"/>
<classpathentry kind="lib" path="lib/commons-io-2.11.0.jar" sourcepath="lib/commons-io-2.11.0-sources.jar"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.12.0.jar" sourcepath="lib/commons-lang3-3.12.0-sources.jar"/>
<classpathentry kind="lib" path="lib/devinsy-cmdexec-0.17.0.jar" sourcepath="lib/devinsy-cmdexec-0.17.0-sources.zip"/>
<classpathentry kind="lib" path="lib/devinsy-strings-0.17.0.jar" sourcepath="lib/devinsy-strings-0.17.0-sources.zip"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -10,16 +10,20 @@ org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@ -27,17 +31,20 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@ -121,11 +128,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@ -155,6 +163,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=inser
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@ -179,13 +189,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@ -232,6 +246,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do n
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@ -268,9 +284,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@ -296,6 +315,10 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=false
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

View file

@ -2,6 +2,6 @@
<faceted-project>
<fixed facet="jst.java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.java" version="6.0"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="jst.java" version="17"/>
</faceted-project>

View file

@ -11,8 +11,8 @@ This software is released under the GNU LGPL.
## Requirements
- Java 1.6
- Eclipse Kepler
- Java 11
- Eclipse 4.16 (202006).
## Context
Several useful Java classes.

View file

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
#Thu May 04 22:58:25 CEST 2017
#Thu Oct 14 18:12:14 CEST 2021
build.number=1

View file

@ -1,3 +1,3 @@
product.name=devinsy-unix
product.revision.major=0
product.revision.minor=4
product.revision.minor=17

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,9 +1,17 @@
Description of used libraries:
- commons-lang: useful tools (StringUtils...)
- hamcrest-core: required by junit
- joda-time: useful DateTime library
- junit: unit tests API
== Description of used libraries.
Standards:
- commons-io
- commons-lang: useful tools (StringUtils…)
- devinsy-strings
- devinsy-cmdexec
Logging:
- log4j: log API
- slf4j-api: facade log API
- slf4j-log4j12: adaptation layer between slf4j and log4j
Testing:
- hamcrest-core: required by JUnit
- junit: unit tests API

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/commons-io-2.11.0.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2010,2013-2014,2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,11 +16,11 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.util.Vector;
import fr.devinsy.util.ChangeableFile;
import fr.devinsy.unix.util.ChangeableFile;
/**
* The Class EtcGroupFile.
@ -144,10 +144,8 @@ public class EtcGroupFile extends ChangeableFile
return result;
}
/**
* This method returns the updated groups.
*
* @return the groups
/* (non-Javadoc)
* @see fr.devinsy.unix.util.ChangeableFile#refresh()
*/
@Override
public void refresh()

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.io.BufferedReader;
import java.io.FileReader;
@ -65,7 +65,7 @@ public class EtcGroupFileReader
Group group = new Group();
group.setName(tokens[0]);
group.setPassword(tokens[1]);
group.setGid((new Integer(tokens[2])).intValue());
group.setGid(Integer.valueOf(tokens[2]).intValue());
// Manage the case of empty shell.
if (tokens.length == 4)
@ -105,5 +105,3 @@ public class EtcGroupFileReader
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,17 +16,12 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.ChangeableFile;
import fr.devinsy.unix.util.ChangeableFile;
/**
* The Class EtcPasswdFile.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class EtcPasswdFile extends ChangeableFile
{
@ -36,8 +31,6 @@ public class EtcPasswdFile extends ChangeableFile
private static final EtcPasswdFile instance = new EtcPasswdFile();
}
private static final Logger logger = LoggerFactory.getLogger(EtcPasswdFile.class);
private Users users;
/**
@ -106,10 +99,8 @@ public class EtcPasswdFile extends ChangeableFile
return result;
}
/**
* Updated users.
*
* @return the users
/* (non-Javadoc)
* @see fr.devinsy.unix.util.ChangeableFile#refresh()
*/
@Override
public void refresh()
@ -152,5 +143,3 @@ public class EtcPasswdFile extends ChangeableFile
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.io.BufferedReader;
import java.io.FileReader;
@ -28,7 +28,6 @@ import org.slf4j.LoggerFactory;
/**
* The Class EtcPasswdFileReader.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class EtcPasswdFileReader
{
@ -66,8 +65,8 @@ public class EtcPasswdFileReader
User user = new User();
user.setLogin(tokens[0]);
user.setPassword(tokens[1]);
user.setUid((new Integer(tokens[2])).intValue());
user.setGid((new Integer(tokens[3])).intValue());
user.setUid(Integer.valueOf(tokens[2]).intValue());
user.setGid(Integer.valueOf(tokens[3]).intValue());
user.setRealName(tokens[4]);
user.setHomeDirectory(tokens[5]);
@ -109,5 +108,3 @@ public class EtcPasswdFileReader
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,14 +16,13 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.util.Vector;
/**
* The Class Group.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class Group
{
@ -89,7 +88,9 @@ public class Group
}
/**
* Gets the members.
*
* @return the members
*/
public Vector<String> getMembers()
{
@ -102,7 +103,9 @@ public class Group
}
/**
* Gets the name.
*
* @return the name
*/
public String getName()
{
@ -115,7 +118,9 @@ public class Group
}
/**
* Gets the password.
*
* @return the password
*/
public String getPassword()
{
@ -128,7 +133,9 @@ public class Group
}
/**
* Gid.
*
* @return the int
*/
public int gid()
{
@ -141,7 +148,9 @@ public class Group
}
/**
* Members.
*
* @return the vector
*/
public Vector<String> members()
{
@ -154,7 +163,9 @@ public class Group
}
/**
* Name.
*
* @return the string
*/
public String name()
{
@ -167,7 +178,9 @@ public class Group
}
/**
* Passwd.
*
* @return the string
*/
public String passwd()
{
@ -180,7 +193,10 @@ public class Group
}
/**
* Sets the gid.
*
* @param gid
* the new gid
*/
public void setGid(final int gid)
{
@ -188,7 +204,10 @@ public class Group
}
/**
* Sets the name.
*
* @param name
* the new name
*/
public void setName(final String name)
{
@ -196,7 +215,10 @@ public class Group
}
/**
* Sets the passwd.
*
* @param password
* the new passwd
*/
public void setPasswd(final String password)
{
@ -204,7 +226,10 @@ public class Group
}
/**
* Sets the password.
*
* @param password
* the new password
*/
public void setPassword(final String password)
{
@ -225,5 +250,3 @@ public class Group
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.util.Iterator;
import java.util.Vector;
@ -24,11 +24,9 @@ import java.util.Vector;
/**
* The Class Groups.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class Groups extends Vector<Group>
{
private static final long serialVersionUID = 5802487312198869603L;
// static private final Logger logger =
@ -91,7 +89,11 @@ public class Groups extends Vector<Group>
}
/**
* Gets the by gid.
*
* @param gid
* the gid
* @return the by gid
*/
public Group getByGid(final int gid)
{
@ -250,5 +252,3 @@ public class Groups extends Vector<Group>
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2015,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.io.File;
import java.util.Vector;
@ -26,16 +26,15 @@ import org.apache.commons.lang3.SystemUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.cmdexec.CmdExecException;
import fr.devinsy.util.cmdexec.CmdExecUtils;
import fr.devinsy.util.strings.StringListUtils;
import fr.devinsy.util.unix.acl.Acl;
import fr.devinsy.util.unix.acl.AclManager;
import fr.devinsy.cmdexec.CmdExecException;
import fr.devinsy.cmdexec.CmdExecUtils;
import fr.devinsy.strings.StringsUtils;
import fr.devinsy.unix.acl.Acl;
import fr.devinsy.unix.acl.AclManager;
/**
* The Class Unix.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class Unix
{
@ -51,8 +50,8 @@ public class Unix
* the text
* @param path
* the path
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void appendToFile(final String text, final String path) throws UnixException
{
@ -99,6 +98,15 @@ public class Unix
return result;
}
/**
* Bash.
*
* @param command
* the command
* @return the string
* @throws CmdExecException
* the cmd exec exception
*/
public static String bash(final String... command) throws CmdExecException
{
String result;
@ -123,8 +131,8 @@ public class Unix
* the changes
* @param path
* the path
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void chmod(final String changes, final String path) throws UnixException
{
@ -157,8 +165,8 @@ public class Unix
* the id
* @param filePathName
* the file path name
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void clearAcl(final String id, final String filePathName) throws UnixException
{
@ -172,8 +180,8 @@ public class Unix
* the group
* @param filePathName
* the file path name
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void clearAclGroup(final String group, final String filePathName) throws UnixException
{
@ -187,8 +195,8 @@ public class Unix
* the login
* @param filePathName
* the file path name
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void clearAclUser(final String login, final String filePathName) throws UnixException
{
@ -200,8 +208,8 @@ public class Unix
*
* @param login
* the login
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void createUserAccount(final String login) throws UnixException
{
@ -222,8 +230,8 @@ public class Unix
* the login
* @param name
* the name
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void createUserAccount(final String login, final String name) throws UnixException
{
@ -250,8 +258,8 @@ public class Unix
* the name
* @param home
* the home
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void createUserAccount(final String login, final String name, final String home) throws UnixException
{
@ -295,8 +303,8 @@ public class Unix
* the home
* @param password
* the password
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void createUserAccount(final String login, final String name, final String home, final String password) throws UnixException
{
@ -320,8 +328,8 @@ public class Unix
*
* @param group
* the group
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void deleteGroup(final String group) throws UnixException
{
@ -346,7 +354,12 @@ public class Unix
}
/**
* Delete user account.
*
* @param login
* the login
* @throws UnixException
* the unix exception
*/
public static void deleteUserAccount(final String login) throws UnixException
{
@ -402,8 +415,8 @@ public class Unix
* @param filePathName
* the file path name
* @return the acl data
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static String getAclData(final String filePathName) throws UnixException
{
@ -421,8 +434,8 @@ public class Unix
* @param filePathName
* the file path name
* @return the acl users
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static String[] getAclUsers(final String filePathName) throws UnixException
{
@ -477,8 +490,8 @@ public class Unix
* the source path
* @param targetPath
* the target path
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void link(final String sourcePath, final String targetPath) throws UnixException
{
@ -524,8 +537,8 @@ public class Unix
* the target login
* @param sourceHomeDirectory
* the source home directory
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void modifyLogin(final String sourceLogin, final String targetLogin, final String sourceHomeDirectory) throws UnixException
{
@ -601,8 +614,8 @@ public class Unix
* the changes
* @param path
* the path
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void recursiveChmod(final String changes, final String path) throws UnixException
{
@ -728,19 +741,19 @@ public class Unix
*
* @param args
* the new facl
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static void setfacl(final String... args) throws UnixException
{
try
{
String[] command = ArrayUtils.add(args, 0, "setfacl");
String[] command = ArrayUtils.insert(0, args, "setfacl");
sudo(command);
}
catch (CmdExecException exception)
{
throw new UnixException("Error running setfacl command for " + StringListUtils.toStringWithBrackets(args) + ":" + exception.getMessage() + ".", exception);
throw new UnixException("Error running setfacl command for " + StringsUtils.toStringWithBrackets(args) + ":" + exception.getMessage() + ".", exception);
}
}
@ -788,6 +801,7 @@ public class Unix
* @param newRealName
* the new real name
* @throws UnixException
* the unix exception
*/
public static void setRealName(final String login, final String newRealName) throws UnixException
{
@ -854,7 +868,7 @@ public class Unix
if (SystemUtils.IS_OS_UNIX)
{
String[] newCommand = ArrayUtils.add(command, 0, SUDO);
String[] newCommand = ArrayUtils.insert(0, command, SUDO);
result = CmdExecUtils.run(newCommand);
}
else
@ -945,5 +959,3 @@ public class Unix
}
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2016-2017 Christian Pierre MOMON
* Copyright (C) 2016-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
/**
* The Class UnixException.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,12 +16,11 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
/**
* The Class User.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class User
{
@ -409,5 +408,3 @@ public class User
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.util.Iterator;
import java.util.Vector;
@ -24,7 +24,6 @@ import java.util.Vector;
/**
* The Class Users.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class Users extends Vector<User>
{
@ -41,8 +40,12 @@ public class Users extends Vector<User>
super();
}
/* (non-Javadoc)
* @see java.util.Vector#addAll(java.util.Collection)
/**
* Adds the all.
*
* @param source
* the source
* @return true, if successful
*/
public boolean addAll(final Users source)
{
@ -212,5 +215,3 @@ public class Users extends Vector<User>
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010, 2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2010, 2013-2014,2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix.acl;
package fr.devinsy.unix.acl;
/**
* The Class Acl.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010, 2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2010, 2013-2014,2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix.acl;
package fr.devinsy.unix.acl;
import java.util.Iterator;
import java.util.Vector;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2010,2013-2014,2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix.acl;
package fr.devinsy.unix.acl;
/**
* The Class AclEntry.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010,2013-2015,2017 Christian Pierre MOMON
* Copyright (C) 2010-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix.acl;
package fr.devinsy.unix.acl;
import java.io.File;
import java.util.regex.Matcher;
@ -26,10 +26,10 @@ import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.cmdexec.CmdExecException;
import fr.devinsy.util.strings.StringListUtils;
import fr.devinsy.util.unix.Unix;
import fr.devinsy.util.unix.UnixException;
import fr.devinsy.cmdexec.CmdExecException;
import fr.devinsy.strings.StringsUtils;
import fr.devinsy.unix.Unix;
import fr.devinsy.unix.UnixException;
/**
* The Class AclManager.
@ -118,6 +118,7 @@ public class AclManager
* the file path name
* @return the acl
* @throws UnixException
* the unix exception
*/
public static Acl getAcl(final String filePathName) throws UnixException
{
@ -219,6 +220,8 @@ public class AclManager
* @param filePathName
* the file path name
* @return the acl data
* @throws UnixException
* the unix exception
*/
public static String getAclData(final String filePathName) throws UnixException
{
@ -299,8 +302,7 @@ public class AclManager
* the depth
* @return true, if is used
* @throws UnixException
* @throws Exception
* the exception
* the unix exception
*/
public static boolean isUsed(final AclEntry.Type type, final String id, final String filePathName, final int depth) throws UnixException
{
@ -354,6 +356,7 @@ public class AclManager
* the depth
* @return true, if is used
* @throws UnixException
* the unix exception
*/
public static boolean isUsed(final AclEntry.Type type, final String id, final String filePath, final String[] filePathNames, final int depth) throws UnixException
{
@ -419,8 +422,8 @@ public class AclManager
* @param depth
* the depth
* @return true, if is used
* @throws Exception
* the exception
* @throws UnixException
* the unix exception
*/
public static boolean isUsed(final String id, final String filePathName, final int depth) throws UnixException
{
@ -470,6 +473,7 @@ public class AclManager
* the depth
* @return true, if is used
* @throws UnixException
* the unix exception
*/
public static boolean isUsed(final String id, final String[] filePathNames, final int depth) throws UnixException
{
@ -516,14 +520,12 @@ public class AclManager
{
try
{
String[] newArgs = ArrayUtils.add(args, 0, "setfacl");
String[] newArgs = ArrayUtils.insert(0, args, "setfacl");
Unix.sudo(newArgs);
}
catch (CmdExecException exception)
{
throw new UnixException("Error running setfacl command for " + StringListUtils.toStringWithBrackets(args) + ":" + exception.getMessage() + ".");
throw new UnixException("Error running setfacl command for " + StringsUtils.toStringWithBrackets(args) + ":" + exception.getMessage() + ".");
}
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 Christian Pierre MOMON
* Copyright (C) 2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,9 +16,9 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix.demo;
package fr.devinsy.unix.demo;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
/**
* The Class UnixDemo.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 Christian Pierre MOMON
* Copyright (C) 2017-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,10 +16,11 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix.linux;
package fr.devinsy.unix.linux;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -29,13 +30,12 @@ import org.apache.commons.lang3.time.DurationFormatUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.Property;
import fr.devinsy.util.PropertyList;
import fr.devinsy.unix.util.Property;
import fr.devinsy.unix.util.PropertyList;
/**
* The Class Linux.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class Linux
{
@ -207,6 +207,7 @@ public class Linux
*
* @return the string
* @throws IOException
* Signals that an I/O exception has occurred.
*/
public static String readProcCpuinfo0() throws IOException
{
@ -236,7 +237,7 @@ public class Linux
{
String result;
result = FileUtils.readFileToString(new File("/proc/cpuinfo"));
result = FileUtils.readFileToString(new File("/proc/cpuinfo"), StandardCharsets.UTF_8);
//
return result;
@ -253,7 +254,7 @@ public class Linux
{
String result;
result = FileUtils.readFileToString(new File("/proc/meminfo"));
result = FileUtils.readFileToString(new File("/proc/meminfo"), StandardCharsets.UTF_8);
//
return result;
@ -264,12 +265,13 @@ public class Linux
*
* @return the string
* @throws IOException
* Signals that an I/O exception has occurred.
*/
public static String readProcUptimeFile() throws IOException
{
String result;
result = FileUtils.readFileToString(new File("/proc/uptime"));
result = FileUtils.readFileToString(new File("/proc/uptime"), StandardCharsets.UTF_8);
//
return result;
@ -286,7 +288,7 @@ public class Linux
{
String result;
result = FileUtils.readFileToString(new File("/proc/version"));
result = FileUtils.readFileToString(new File("/proc/version"), StandardCharsets.UTF_8);
//
return result;
@ -309,16 +311,16 @@ public class Linux
if (debianFile.exists())
{
result = "Debian " + FileUtils.readFileToString(debianFile);
result = "Debian " + FileUtils.readFileToString(debianFile, StandardCharsets.UTF_8);
}
else if (redhatFile.exists())
{
result = FileUtils.readFileToString(redhatFile);
result = FileUtils.readFileToString(redhatFile, StandardCharsets.UTF_8);
}
else if (suseFile.exists())
{
// TODO
result = "SUSE " + FileUtils.readFileToString(debianFile);
result = "SUSE " + FileUtils.readFileToString(debianFile, StandardCharsets.UTF_8);
}
else
{
@ -336,5 +338,3 @@ public class Linux
return result;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2006-2010,2013-2014,2017 Christian Pierre MOMON
* Copyright (C) 2006-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,23 +16,15 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util;
package fr.devinsy.unix.util;
import java.io.File;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class CachedFile.
*
* @author Christian Pierre MOMON <christian.momon@devinsy.fr>
* The Class ChangeableFile.
*/
public class ChangeableFile
{
private static final Logger logger = LoggerFactory.getLogger(ChangeableFile.class);
private File sourceFile;
private long sourceTime;
@ -119,5 +111,3 @@ public class ChangeableFile
this.sourceTime = 0;
}
}
// ////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 Christian Pierre MOMON
* Copyright (C) 2017-2021 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util;
package fr.devinsy.unix.util;
/**
* The Class Property.
@ -28,6 +28,11 @@ public class Property
/**
* Utility class has not to have a constructor.
*
* @param name
* the name
* @param value
* the value
*/
public Property(final String name, final String value)
{
@ -35,21 +40,43 @@ public class Property
this.value = value;
}
/**
* Gets the name.
*
* @return the name
*/
public String getName()
{
return this.name;
}
/**
* Gets the value.
*
* @return the value
*/
public String getValue()
{
return this.value;
}
/**
* Sets the name.
*
* @param name
* the new name
*/
public void setName(final String name)
{
this.name = name;
}
/**
* Sets the value.
*
* @param value
* the new value
*/
public void setValue(final String value)
{
this.value = value;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 Christian Pierre MOMON
* Copyright (C) 2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util;
package fr.devinsy.unix.util;
import java.util.ArrayList;
import java.util.Collections;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010,2013-2015,2017 Christian Pierre MOMON
* Copyright (C) 2010,2013-2015,2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import org.junit.Assert;
import org.junit.Test;
@ -27,8 +27,8 @@ import org.junit.Test;
public class EtcPasswdFileTest
{
/**
*
*/
*
*/
@Test
public void test01()
{

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 Christian Pierre MOMON
* Copyright (C) 2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-unix.
*
@ -16,13 +16,13 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-unix. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.unix;
package fr.devinsy.unix;
import java.io.IOException;
import org.junit.Test;
import fr.devinsy.util.unix.linux.Linux;
import fr.devinsy.unix.linux.Linux;
/**
* The Class LinuxTest.

View file

@ -23,6 +23,8 @@ import java.io.File;
import org.junit.Assert;
import org.junit.Test;
import fr.devinsy.unix.util.ChangeableFile;
/**
* The Class ChangeableFileTest.
*/