mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 09:17:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			189 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
define
 | 
						|
link a b
 | 
						|
create a
 | 
						|
link a b
 | 
						|
link a b
 | 
						|
link c d
 | 
						|
remove b
 | 
						|
link-or-copy a b
 | 
						|
remove b
 | 
						|
----
 | 
						|
link: a -> b [file does not exist]
 | 
						|
create: a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
link: a -> b [<nil>]
 | 
						|
link: a -> b [file already exists]
 | 
						|
link: c -> d [file does not exist]
 | 
						|
remove: b [<nil>]
 | 
						|
link: a -> b [<nil>]
 | 
						|
remove: b [<nil>]
 | 
						|
 | 
						|
define linkErr=ErrExist
 | 
						|
create a
 | 
						|
link a b
 | 
						|
link-or-copy a b
 | 
						|
----
 | 
						|
create: a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
link: a -> b [file already exists]
 | 
						|
link: a -> b [file already exists]
 | 
						|
 | 
						|
define linkErr=ErrNotExist
 | 
						|
create a
 | 
						|
link a b
 | 
						|
link-or-copy a b
 | 
						|
----
 | 
						|
create: a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
link: a -> b [file does not exist]
 | 
						|
link: a -> b [file does not exist]
 | 
						|
 | 
						|
define linkErr=ErrPermission
 | 
						|
create a
 | 
						|
link a b
 | 
						|
link-or-copy a b
 | 
						|
----
 | 
						|
create: a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
link: a -> b [permission denied]
 | 
						|
link: a -> b [permission denied]
 | 
						|
 | 
						|
define linkErr=random
 | 
						|
create a
 | 
						|
link a b
 | 
						|
link-or-copy a b
 | 
						|
----
 | 
						|
create: a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
link: a -> b [random]
 | 
						|
link: a -> b [random]
 | 
						|
open: a [<nil>]
 | 
						|
create: b [<nil>]
 | 
						|
sync: b [<nil>]
 | 
						|
close: b [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
 | 
						|
define
 | 
						|
mkdir d
 | 
						|
create d/a
 | 
						|
mkdir  d/b
 | 
						|
create d/b/c
 | 
						|
----
 | 
						|
mkdir: d [<nil>]
 | 
						|
create: d/a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
mkdir: d/b [<nil>]
 | 
						|
create: d/b/c [<nil>]
 | 
						|
close: c [<nil>]
 | 
						|
 | 
						|
# NB: This clone does not specify a destination FS, so the clone target will be
 | 
						|
# the same FS. This results in the use of link.
 | 
						|
 | 
						|
define
 | 
						|
clone d e link
 | 
						|
----
 | 
						|
open: d [<nil>]
 | 
						|
mkdir: e [<nil>]
 | 
						|
open: d/a [<nil>]
 | 
						|
link: d/a -> e/a [random]
 | 
						|
open: d/a [<nil>]
 | 
						|
create: e/a [<nil>]
 | 
						|
sync: a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
close: d/a [<nil>]
 | 
						|
close: d/a [<nil>]
 | 
						|
open: d/b [<nil>]
 | 
						|
mkdir: e/b [<nil>]
 | 
						|
open: d/b/c [<nil>]
 | 
						|
link: d/b/c -> e/b/c [random]
 | 
						|
open: d/b/c [<nil>]
 | 
						|
create: e/b/c [<nil>]
 | 
						|
sync: c [<nil>]
 | 
						|
close: c [<nil>]
 | 
						|
close: d/b/c [<nil>]
 | 
						|
close: d/b/c [<nil>]
 | 
						|
close: d/b [<nil>]
 | 
						|
close: d [<nil>]
 | 
						|
 | 
						|
define
 | 
						|
list e
 | 
						|
----
 | 
						|
a
 | 
						|
b
 | 
						|
 | 
						|
define
 | 
						|
list e/b
 | 
						|
----
 | 
						|
c
 | 
						|
 | 
						|
define
 | 
						|
list /
 | 
						|
remove e
 | 
						|
remove-all e
 | 
						|
remove-all e
 | 
						|
remove-all e/a/b/c
 | 
						|
list /
 | 
						|
----
 | 
						|
a
 | 
						|
b
 | 
						|
d
 | 
						|
e
 | 
						|
remove: e [file already exists]
 | 
						|
remove-all: e [<nil>]
 | 
						|
remove-all: e [<nil>]
 | 
						|
remove-all: e/a/b/c [<nil>]
 | 
						|
a
 | 
						|
b
 | 
						|
d
 | 
						|
 | 
						|
define
 | 
						|
reuseForWrite a b
 | 
						|
reuseForWrite x y
 | 
						|
----
 | 
						|
reuseForWrite: a -> b [<nil>]
 | 
						|
reuseForWrite: x -> y [file does not exist]
 | 
						|
 | 
						|
# NB: This clone target specified a different FS. This results in no use of
 | 
						|
# link, despite link being provided.
 | 
						|
 | 
						|
define
 | 
						|
clone d f mem link
 | 
						|
----
 | 
						|
open: d [<nil>]
 | 
						|
mkdir: f [<nil>]
 | 
						|
open: d/a [<nil>]
 | 
						|
create: f/a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
close: d/a [<nil>]
 | 
						|
open: d/b [<nil>]
 | 
						|
mkdir: f/b [<nil>]
 | 
						|
open: d/b/c [<nil>]
 | 
						|
create: f/b/c [<nil>]
 | 
						|
close: c [<nil>]
 | 
						|
close: d/b/c [<nil>]
 | 
						|
close: d/b [<nil>]
 | 
						|
close: d [<nil>]
 | 
						|
 | 
						|
# NB: This clone does not specify link, so all files are copied. It does specify
 | 
						|
# sync, so all files and directories are synced.
 | 
						|
 | 
						|
define
 | 
						|
clone d g sync
 | 
						|
----
 | 
						|
open: d [<nil>]
 | 
						|
mkdir: g [<nil>]
 | 
						|
open: d/a [<nil>]
 | 
						|
create: g/a [<nil>]
 | 
						|
sync: a [<nil>]
 | 
						|
close: a [<nil>]
 | 
						|
close: d/a [<nil>]
 | 
						|
open: d/b [<nil>]
 | 
						|
mkdir: g/b [<nil>]
 | 
						|
open: d/b/c [<nil>]
 | 
						|
create: g/b/c [<nil>]
 | 
						|
sync: c [<nil>]
 | 
						|
close: c [<nil>]
 | 
						|
close: d/b/c [<nil>]
 | 
						|
close: d/b [<nil>]
 | 
						|
close: d [<nil>]
 |