Skip to content

Commit

Permalink
Add confirm action before resetting files attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
evrignaud committed Oct 20, 2015
1 parent e224465 commit 00c1fcf
Showing 1 changed file with 46 additions and 43 deletions.
89 changes: 46 additions & 43 deletions src/main/java/org/fim/command/ResetFileAttributesCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,63 +72,66 @@ public Object execute(Context context) throws Exception
{
StateManager manager = new StateManager(context);
State lastState = manager.loadLastState();
int fileResetCount = 0;

Logger.info(String.format("Reset files attributes based on the last committed State done %s", formatDate(lastState.getTimestamp())));
if (lastState.getComment().length() > 0)
System.out.printf(String.format("You are going to reset files attributes based on the last committed State done %s%n", formatDate(lastState.getTimestamp())));
if (confirmAction(context, "continue"))
{
System.out.println("Comment: " + lastState.getComment());
}
Console.newLine();
if (lastState.getComment().length() > 0)
{
System.out.println("Comment: " + lastState.getComment());
}
Console.newLine();

if (context.isInvokedFromSubDirectory())
{
lastState = lastState.filterDirectory(context.getRepositoryRootDir(), context.getCurrentDirectory(), true);
}
if (context.isInvokedFromSubDirectory())
{
lastState = lastState.filterDirectory(context.getRepositoryRootDir(), context.getCurrentDirectory(), true);
}

int fileResetCount = 0;
for (FileState fileState : lastState.getFileStates())
{
Path file = context.getRepositoryRootDir().resolve(fileState.getFileName());
if (Files.exists(file))
for (FileState fileState : lastState.getFileStates())
{
boolean attributesModified = false;
Path file = context.getRepositoryRootDir().resolve(fileState.getFileName());
if (Files.exists(file))
{
boolean attributesModified = false;

BasicFileAttributes attributes;
BasicFileAttributes attributes;

if (SystemUtils.IS_OS_WINDOWS)
{
DosFileAttributes dosFileAttributes = Files.readAttributes(file, DosFileAttributes.class);
attributes = dosFileAttributes;
if (SystemUtils.IS_OS_WINDOWS)
{
DosFileAttributes dosFileAttributes = Files.readAttributes(file, DosFileAttributes.class);
attributes = dosFileAttributes;

attributesModified = resetDosPermissions(file, fileState, dosFileAttributes) || attributesModified;
}
else
{
PosixFileAttributes posixFileAttributes = Files.readAttributes(file, PosixFileAttributes.class);
attributes = posixFileAttributes;
attributesModified = resetDosPermissions(file, fileState, dosFileAttributes) || attributesModified;
}
else
{
PosixFileAttributes posixFileAttributes = Files.readAttributes(file, PosixFileAttributes.class);
attributes = posixFileAttributes;

attributesModified = resetPosixPermissions(file, fileState, posixFileAttributes) || attributesModified;
}
attributesModified = resetPosixPermissions(file, fileState, posixFileAttributes) || attributesModified;
}

attributesModified = resetCreationTime(file, fileState, attributes) || attributesModified;
attributesModified = resetLastModified(file, fileState, attributes) || attributesModified;
attributesModified = resetSELinux(file, fileState) || attributesModified;
attributesModified = resetCreationTime(file, fileState, attributes) || attributesModified;
attributesModified = resetLastModified(file, fileState, attributes) || attributesModified;
attributesModified = resetSELinux(file, fileState) || attributesModified;

if (attributesModified)
{
fileResetCount++;
if (attributesModified)
{
fileResetCount++;
}
}
}
}

if (fileResetCount == 0)
{
Logger.info("No file attributes have been reset");
}
else
{
Console.newLine();
Logger.info(String.format("The attributes of %d %s have been reset", fileResetCount, English.plural("file", fileResetCount)));
if (fileResetCount == 0)
{
Logger.info("No file attributes have been reset");
}
else
{
Console.newLine();
Logger.info(String.format("The attributes of %d %s have been reset", fileResetCount, English.plural("file", fileResetCount)));
}
}
return fileResetCount;
}
Expand Down

0 comments on commit 00c1fcf

Please sign in to comment.