Compare commits
16 commits
Author | SHA1 | Date | |
---|---|---|---|
b592aef37f | |||
402a0a47dd | |||
c0d3fb7be0 | |||
4494a74296 | |||
aab19fc872 | |||
f4eb01681e | |||
c61b3b3ffe | |||
872b3ac582 | |||
ca820ab0f9 | |||
353096f2e8 | |||
da6778e305 | |||
c552f1cf3a | |||
642311c24b | |||
0cfdec1bee | |||
33f88d75a3 | |||
fff45c5aaa |
61 changed files with 284 additions and 220 deletions
24
.classpath
24
.classpath
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
product.name=devinsy-unix
|
||||
product.revision.major=0
|
||||
product.revision.minor=4
|
||||
product.revision.minor=17
|
||||
|
|
BIN
lib/Logs/slf4j-api-1.7.25-sources.jar
Normal file
BIN
lib/Logs/slf4j-api-1.7.25-sources.jar
Normal file
Binary file not shown.
BIN
lib/Logs/slf4j-api-1.7.25.jar
Normal file
BIN
lib/Logs/slf4j-api-1.7.25.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/Logs/slf4j-log4j12-1.7.25-sources.jar
Normal file
BIN
lib/Logs/slf4j-log4j12-1.7.25-sources.jar
Normal file
Binary file not shown.
BIN
lib/Logs/slf4j-log4j12-1.7.25.jar
Normal file
BIN
lib/Logs/slf4j-log4j12-1.7.25.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
18
lib/README
18
lib/README
|
@ -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.
BIN
lib/UnitTesting/junit-4.12-sources.jar
Normal file
BIN
lib/UnitTesting/junit-4.12-sources.jar
Normal file
Binary file not shown.
BIN
lib/UnitTesting/junit-4.12.jar
Normal file
BIN
lib/UnitTesting/junit-4.12.jar
Normal file
Binary file not shown.
BIN
lib/commons-io-2.11.0-sources.jar
Normal file
BIN
lib/commons-io-2.11.0-sources.jar
Normal file
Binary file not shown.
BIN
lib/commons-io-2.11.0.jar
Normal file
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.
BIN
lib/commons-lang3-3.12.0-sources.jar
Normal file
BIN
lib/commons-lang3-3.12.0-sources.jar
Normal file
Binary file not shown.
BIN
lib/commons-lang3-3.12.0.jar
Normal file
BIN
lib/commons-lang3-3.12.0.jar
Normal file
Binary file not shown.
BIN
lib/devinsy-cmdexec-0.17.0-sources.zip
Normal file
BIN
lib/devinsy-cmdexec-0.17.0-sources.zip
Normal file
Binary file not shown.
BIN
lib/devinsy-cmdexec-0.17.0.jar
Normal file
BIN
lib/devinsy-cmdexec-0.17.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/devinsy-strings-0.17.0-sources.zip
Normal file
BIN
lib/devinsy-strings-0.17.0-sources.zip
Normal file
Binary file not shown.
BIN
lib/devinsy-strings-0.17.0.jar
Normal file
BIN
lib/devinsy-strings-0.17.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,3 +0,0 @@
|
|||
Manifest-Version: 1.0
|
||||
Class-Path:
|
||||
|
|
@ -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()
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
||||
|
@ -118,13 +126,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Chmod.
|
||||
*
|
||||
*
|
||||
* @param changes
|
||||
* 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
|
||||
{
|
||||
|
@ -152,13 +160,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Clear acl.
|
||||
*
|
||||
*
|
||||
* @param id
|
||||
* 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
|
||||
{
|
||||
|
@ -167,13 +175,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Clear acl group.
|
||||
*
|
||||
*
|
||||
* @param group
|
||||
* 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
|
||||
{
|
||||
|
@ -182,13 +190,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Clear acl user.
|
||||
*
|
||||
*
|
||||
* @param login
|
||||
* 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
|
||||
{
|
||||
|
@ -197,11 +205,11 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Creates the user account.
|
||||
*
|
||||
*
|
||||
* @param login
|
||||
* the login
|
||||
* @throws Exception
|
||||
* the exception
|
||||
* @throws UnixException
|
||||
* the unix exception
|
||||
*/
|
||||
public static void createUserAccount(final String login) throws UnixException
|
||||
{
|
||||
|
@ -217,13 +225,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Creates the user account.
|
||||
*
|
||||
*
|
||||
* @param login
|
||||
* 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
|
||||
{
|
||||
|
@ -243,15 +251,15 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Creates the user account.
|
||||
*
|
||||
*
|
||||
* @param login
|
||||
* the login
|
||||
* @param name
|
||||
* 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
|
||||
{
|
||||
|
@ -286,7 +294,7 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Creates the user account.
|
||||
*
|
||||
*
|
||||
* @param login
|
||||
* the login
|
||||
* @param name
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -317,11 +325,11 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Delete group.
|
||||
*
|
||||
*
|
||||
* @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
|
||||
{
|
||||
|
@ -398,12 +411,12 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Gets the acl data.
|
||||
*
|
||||
*
|
||||
* @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
|
||||
{
|
||||
|
@ -417,12 +430,12 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Gets the acl users.
|
||||
*
|
||||
*
|
||||
* @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
|
||||
{
|
||||
|
@ -472,13 +485,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Link.
|
||||
*
|
||||
*
|
||||
* @param sourcePath
|
||||
* 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
|
||||
{
|
||||
|
@ -517,15 +530,15 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Modify login.
|
||||
*
|
||||
*
|
||||
* @param sourceLogin
|
||||
* the source login
|
||||
* @param targetLogin
|
||||
* 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
|
||||
{
|
||||
|
@ -596,13 +609,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Recursive chmod.
|
||||
*
|
||||
*
|
||||
* @param changes
|
||||
* 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
|
||||
{
|
||||
|
@ -725,22 +738,22 @@ public class Unix
|
|||
|
||||
/**
|
||||
* Sets the facl.
|
||||
*
|
||||
*
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -782,12 +795,13 @@ public class Unix
|
|||
|
||||
/**
|
||||
* chfn [ -f full-name ] [ username ].
|
||||
*
|
||||
*
|
||||
* @param login
|
||||
* the login
|
||||
* @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
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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.
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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.
|
|
@ -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;
|
|
@ -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.
|
|
@ -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.
|
||||
|
@ -113,11 +113,12 @@ public class AclManager
|
|||
|
||||
/**
|
||||
* Gets the acl.
|
||||
*
|
||||
*
|
||||
* @param filePathName
|
||||
* the file path name
|
||||
* @return the acl
|
||||
* @throws UnixException
|
||||
* the unix exception
|
||||
*/
|
||||
public static Acl getAcl(final String filePathName) throws UnixException
|
||||
{
|
||||
|
@ -215,10 +216,12 @@ public class AclManager
|
|||
|
||||
/**
|
||||
* Gets the ACL data.
|
||||
*
|
||||
*
|
||||
* @param filePathName
|
||||
* the file path name
|
||||
* @return the acl data
|
||||
* @throws UnixException
|
||||
* the unix exception
|
||||
*/
|
||||
public static String getAclData(final String filePathName) throws UnixException
|
||||
{
|
||||
|
@ -288,7 +291,7 @@ public class AclManager
|
|||
|
||||
/**
|
||||
* Checks if is used.
|
||||
*
|
||||
*
|
||||
* @param type
|
||||
* the type
|
||||
* @param id
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -341,7 +343,7 @@ public class AclManager
|
|||
|
||||
/**
|
||||
* Checks if is used.
|
||||
*
|
||||
*
|
||||
* @param type
|
||||
* the type
|
||||
* @param id
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -411,7 +414,7 @@ public class AclManager
|
|||
|
||||
/**
|
||||
* Checks if is used.
|
||||
*
|
||||
*
|
||||
* @param id
|
||||
* the id
|
||||
* @param filePathName
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -461,7 +464,7 @@ public class AclManager
|
|||
|
||||
/**
|
||||
* Checks if is used.
|
||||
*
|
||||
*
|
||||
* @param id
|
||||
* the id
|
||||
* @param filePathNames
|
||||
|
@ -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() + ".");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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.
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////
|
|
@ -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;
|
|
@ -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;
|
|
@ -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()
|
||||
{
|
|
@ -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.
|
|
@ -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.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue