130 lines
2.3 KiB
Plaintext
130 lines
2.3 KiB
Plaintext
|
|
||
|
:- use_module(library(calendar)).
|
||
|
|
||
|
|
||
|
:- object(system,
|
||
|
implements(systemp)).
|
||
|
|
||
|
|
||
|
:- info([
|
||
|
version is 1.0,
|
||
|
author is 'Paulo Moura',
|
||
|
date is 2004/6/5,
|
||
|
comment is 'Operating system interface for ECLiPSe.']).
|
||
|
|
||
|
|
||
|
make_directory(Directory) :-
|
||
|
{mkdir(Directory)}.
|
||
|
|
||
|
|
||
|
delete_directory(Directory) :-
|
||
|
{delete(Directory)}.
|
||
|
|
||
|
|
||
|
change_directory(Directory) :-
|
||
|
{cd(Directory)}.
|
||
|
|
||
|
|
||
|
working_directory(Directory) :-
|
||
|
{getcwd(Directory)}.
|
||
|
|
||
|
|
||
|
directory_exists(Directory) :-
|
||
|
{fail}.
|
||
|
|
||
|
|
||
|
directory_files(Directory, Files) :-
|
||
|
{read_directory(Directory, "*", _, Files)}.
|
||
|
|
||
|
|
||
|
absolute_file_name(File) :-
|
||
|
absolute_file_name(File, File).
|
||
|
|
||
|
|
||
|
absolute_file_name(File, Full) :-
|
||
|
{Rel == user ->
|
||
|
Abs == user % treat user specially
|
||
|
; get_flag(prolog_suffix, Sufs),
|
||
|
(existing_file(Rel, Sufs, [], ExtRel) -> true ; ExtRel = Rel),
|
||
|
canonical_path_name(ExtRel, Abs)}.
|
||
|
|
||
|
|
||
|
file_base_name(File, Base) :-
|
||
|
{pathname(File, _, Base, _)}.
|
||
|
|
||
|
|
||
|
file_name_extension(File, Extension) :-
|
||
|
{pathname(File, _, _, Extension)}.
|
||
|
|
||
|
|
||
|
file_name_directory(File, Directory) :-
|
||
|
{pathname(File, Directory, _, _)}.
|
||
|
|
||
|
|
||
|
file_exists(File) :-
|
||
|
{exists(File)}.
|
||
|
|
||
|
|
||
|
file_modification_time(File, Time) :-
|
||
|
{get_file_info(File, mtime, Time)}.
|
||
|
|
||
|
|
||
|
file_size(File, Size) :-
|
||
|
{get_file_info(File, size, Size)}.
|
||
|
|
||
|
|
||
|
file_type(File, Type) :-
|
||
|
{get_file_info(File, mode, Mode)},
|
||
|
Mode /\ 8'170000 =:= Result,
|
||
|
file_mode_type(Result, Type).
|
||
|
|
||
|
file_mode_type(8'100000, regular) :- !.
|
||
|
file_mode_type(8'040000, directory) :- !.
|
||
|
file_mode_type(8'140000, socket) :- !.
|
||
|
file_mode_type(8'120000, symlink) :- !.
|
||
|
file_mode_type(_, unknown).
|
||
|
|
||
|
|
||
|
delete_file(File) :-
|
||
|
{delete(File)}.
|
||
|
|
||
|
|
||
|
rename_file(Old, New) :-
|
||
|
{rename(Old, New)}.
|
||
|
|
||
|
|
||
|
symbolic_link(File, Target) :-
|
||
|
{fail}.
|
||
|
|
||
|
|
||
|
environment_variable(Variable, Value) :-
|
||
|
{getenv(Variable, Value)}.
|
||
|
|
||
|
|
||
|
set_environment_variable(Variable, Value) :-
|
||
|
{fail}.
|
||
|
|
||
|
|
||
|
date_time(Year, Month, Day, Hours, Mins, Secs, 0) :-
|
||
|
{mjd_now(MJD),
|
||
|
mjd_to_date(MJD, Day/Month/Year),
|
||
|
mjd_to_time(MJD, Hours:Mins:Secs)}.
|
||
|
|
||
|
|
||
|
convert_time(Time, Year, Month, Day, Hours, Mins, Secs, _) :-
|
||
|
{unix_to_mjd(Time, MJD),
|
||
|
mjd_to_date(MJD, Day/Month/Year),
|
||
|
mjd_to_time(MJD, Hours:Mins:Secs)}.
|
||
|
|
||
|
|
||
|
cpu_time(Time) :-
|
||
|
{cputime(Time)}.
|
||
|
|
||
|
|
||
|
host_name(Name) :-
|
||
|
{get_flag(hostname, String),
|
||
|
atom_string(Name, String)}.
|
||
|
|
||
|
|
||
|
:- end_object.
|