%%
%% %CopyrightBegin%
%%
%% Copyright Ericsson AB 2012. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
%%
%% %CopyrightEnd%
%%
-module(archive_script_file_access).
-behaviour(escript).
-export([main/1]).
-include_lib("kernel/include/file.hrl").
main(MainArgs) ->
io:format("file_access:~p\n", [MainArgs]),
ArchiveFile = escript:script_name(),
AbsArchiveFile = filename:absname(ArchiveFile),
RelArchiveFile = filename:basename(ArchiveFile),
DotSlashArchiveFile = "./" ++ RelArchiveFile,
Beam = atom_to_list(?MODULE) ++ ".beam",
AbsBeam = filename:join(AbsArchiveFile,Beam),
RelBeam = filename:join(RelArchiveFile,Beam),
DotSlashBeam = filename:join(DotSlashArchiveFile,Beam),
Dir = "dir1",
AbsDir = filename:join(AbsArchiveFile,Dir),
RelDir = filename:join(RelArchiveFile,Dir),
DotSlashDir = filename:join(DotSlashArchiveFile,Dir),
{ok,List1} = erl_prim_loader:list_dir(AbsArchiveFile),
{ok,List1} = erl_prim_loader:list_dir(RelArchiveFile),
{ok,List1} = erl_prim_loader:list_dir(DotSlashArchiveFile),
{ok,List1} = erl_prim_loader:list_dir(AbsArchiveFile ++ "/"),
{ok,List1} = erl_prim_loader:list_dir(AbsArchiveFile ++ "/."),
{ok,List1} = erl_prim_loader:list_dir(filename:join([AbsDir,".."])),
{ok,List1} = erl_prim_loader:list_dir(filename:join([RelDir,".."])),
{ok,List1} = erl_prim_loader:list_dir(filename:join([DotSlashDir,".."])),
false = lists:member([],List1),
{ok,List2} = erl_prim_loader:list_dir(AbsDir),
{ok,List2} = erl_prim_loader:list_dir(RelDir),
{ok,List2} = erl_prim_loader:list_dir(DotSlashDir),
false = lists:member([],List2),
error = erl_prim_loader:list_dir(AbsBeam),
error = erl_prim_loader:list_dir(RelBeam),
error = erl_prim_loader:list_dir(DotSlashBeam),
error = erl_prim_loader:get_file(AbsArchiveFile),
error = erl_prim_loader:get_file(RelArchiveFile),
error = erl_prim_loader:get_file(DotSlashArchiveFile),
error = erl_prim_loader:get_file(AbsArchiveFile ++ "/"),
error = erl_prim_loader:get_file(AbsArchiveFile ++ "/."),
{ok,Bin,AbsBeam} = erl_prim_loader:get_file(AbsBeam),
{ok,Bin,RelBeam} = erl_prim_loader:get_file(RelBeam),
{ok,Bin,DotSlashBeam} = erl_prim_loader:get_file(DotSlashBeam),
{ok,#file_info{type=directory}=DFI} =
erl_prim_loader:read_file_info(AbsArchiveFile),
{ok,DFI} = erl_prim_loader:read_file_info(RelArchiveFile),
{ok,DFI} = erl_prim_loader:read_file_info(DotSlashArchiveFile),
{ok,DFI} = erl_prim_loader:read_file_info(AbsArchiveFile ++ "/"),
{ok,DFI} = erl_prim_loader:read_file_info(AbsArchiveFile ++ "/."),
{ok,#file_info{type=regular}=RFI} = erl_prim_loader:read_file_info(AbsBeam),
{ok,RFI} = erl_prim_loader:read_file_info(RelBeam),
{ok,RFI} = erl_prim_loader:read_file_info(DotSlashBeam),
F = AbsArchiveFile ++ ".extension",
error = erl_prim_loader:list_dir(F),
{ok,_,_} = erl_prim_loader:get_file(F),
{ok,#file_info{type=regular}} = erl_prim_loader:read_file_info(F),
ok.