
core.os.ChrootMount Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2013 Objectos, Fábrica de Software LTDA.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package br.com.objectos.rio.core.os;
import java.util.List;
import br.com.objectos.way.base.io.HasStdout;
import br.com.objectos.way.base.io.Stdout;
import br.com.objectos.way.core.io.Directory;
import com.google.common.collect.ImmutableList;
/**
* @author [email protected] (Marcio Endo)
*/
public class ChrootMount implements HasStdout {
private final Directory dir;
private final List points;
public ChrootMount(Directory dir, List points) {
this.dir = dir;
this.points = points;
}
public static ChrootMountAt at(Directory dir) {
return new ChrootMountAt(dir);
}
public ChrootUmount umount() {
UmountPoint u0 = ChrootUmount.at(dir)
.dir("/dev/shm")
.lazy()
.exec();
UmountPoint u1 = ChrootUmount.at(dir)
.dir("/dev/pts")
.lazy()
.exec();
UmountPoint u2 = ChrootUmount.at(dir)
.dir("/dev")
.lazy()
.exec();
UmountPoint u3 = ChrootUmount.at(dir)
.dir("/sys")
.lazy()
.exec();
UmountPoint u4 = ChrootUmount.at(dir)
.dir("/proc")
.lazy()
.exec();
List umounts = ImmutableList.of(u0, u1, u2, u3, u4);
return new ChrootUmount(this, umounts);
}
@Override
public List getExceptions() {
return Stdout.concatExceptions(points);
}
@Override
public List stdout() {
return Stdout.concatStdout(points);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy