skill-universe 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/bin/skillc.mjs +3 -0
- package/build/dev/javascript/argv/_gleam_artefacts/argv.cache +0 -0
- package/build/dev/javascript/argv/_gleam_artefacts/argv.cache_inline +0 -0
- package/build/dev/javascript/argv/_gleam_artefacts/argv.cache_meta +0 -0
- package/build/dev/javascript/argv/argv.erl +12 -0
- package/build/dev/javascript/argv/argv.mjs +31 -0
- package/build/dev/javascript/argv/argv_ffi.erl +27 -0
- package/build/dev/javascript/argv/argv_ffi.mjs +20 -0
- package/build/dev/javascript/argv/gleam.mjs +1 -0
- package/build/dev/javascript/filepath/_gleam_artefacts/filepath.cache +0 -0
- package/build/dev/javascript/filepath/_gleam_artefacts/filepath.cache_inline +0 -0
- package/build/dev/javascript/filepath/_gleam_artefacts/filepath.cache_meta +0 -0
- package/build/dev/javascript/filepath/filepath.erl +425 -0
- package/build/dev/javascript/filepath/filepath.mjs +529 -0
- package/build/dev/javascript/filepath/filepath_ffi.erl +9 -0
- package/build/dev/javascript/filepath/filepath_ffi.mjs +6 -0
- package/build/dev/javascript/filepath/gleam.mjs +1 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_inline +0 -0
- package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta +0 -0
- package/build/dev/javascript/gleam_stdlib/dict.mjs +710 -0
- package/build/dev/javascript/gleam_stdlib/gleam/bit_array.mjs +285 -0
- package/build/dev/javascript/gleam_stdlib/gleam/bool.mjs +313 -0
- package/build/dev/javascript/gleam_stdlib/gleam/bytes_tree.mjs +225 -0
- package/build/dev/javascript/gleam_stdlib/gleam/dict.mjs +456 -0
- package/build/dev/javascript/gleam_stdlib/gleam/dynamic/decode.mjs +985 -0
- package/build/dev/javascript/gleam_stdlib/gleam/dynamic.mjs +35 -0
- package/build/dev/javascript/gleam_stdlib/gleam/float.mjs +572 -0
- package/build/dev/javascript/gleam_stdlib/gleam/function.mjs +6 -0
- package/build/dev/javascript/gleam_stdlib/gleam/int.mjs +832 -0
- package/build/dev/javascript/gleam_stdlib/gleam/io.mjs +8 -0
- package/build/dev/javascript/gleam_stdlib/gleam/list.mjs +3160 -0
- package/build/dev/javascript/gleam_stdlib/gleam/option.mjs +418 -0
- package/build/dev/javascript/gleam_stdlib/gleam/order.mjs +178 -0
- package/build/dev/javascript/gleam_stdlib/gleam/pair.mjs +102 -0
- package/build/dev/javascript/gleam_stdlib/gleam/result.mjs +480 -0
- package/build/dev/javascript/gleam_stdlib/gleam/set.mjs +416 -0
- package/build/dev/javascript/gleam_stdlib/gleam/string.mjs +723 -0
- package/build/dev/javascript/gleam_stdlib/gleam/string_tree.mjs +133 -0
- package/build/dev/javascript/gleam_stdlib/gleam/uri.mjs +1155 -0
- package/build/dev/javascript/gleam_stdlib/gleam.mjs +1 -0
- package/build/dev/javascript/gleam_stdlib/gleam@bit_array.erl +347 -0
- package/build/dev/javascript/gleam_stdlib/gleam@bool.erl +352 -0
- package/build/dev/javascript/gleam_stdlib/gleam@bytes_tree.erl +211 -0
- package/build/dev/javascript/gleam_stdlib/gleam@dict.erl +521 -0
- package/build/dev/javascript/gleam_stdlib/gleam@dynamic.erl +106 -0
- package/build/dev/javascript/gleam_stdlib/gleam@dynamic@decode.erl +1112 -0
- package/build/dev/javascript/gleam_stdlib/gleam@float.erl +764 -0
- package/build/dev/javascript/gleam_stdlib/gleam@function.erl +18 -0
- package/build/dev/javascript/gleam_stdlib/gleam@int.erl +1004 -0
- package/build/dev/javascript/gleam_stdlib/gleam@io.erl +80 -0
- package/build/dev/javascript/gleam_stdlib/gleam@list.erl +2832 -0
- package/build/dev/javascript/gleam_stdlib/gleam@option.erl +413 -0
- package/build/dev/javascript/gleam_stdlib/gleam@order.erl +200 -0
- package/build/dev/javascript/gleam_stdlib/gleam@pair.erl +110 -0
- package/build/dev/javascript/gleam_stdlib/gleam@result.erl +532 -0
- package/build/dev/javascript/gleam_stdlib/gleam@set.erl +433 -0
- package/build/dev/javascript/gleam_stdlib/gleam@string.erl +1012 -0
- package/build/dev/javascript/gleam_stdlib/gleam@string_tree.erl +207 -0
- package/build/dev/javascript/gleam_stdlib/gleam@uri.erl +1049 -0
- package/build/dev/javascript/gleam_stdlib/gleam_stdlib.erl +529 -0
- package/build/dev/javascript/gleam_stdlib/gleam_stdlib.mjs +1050 -0
- package/build/dev/javascript/gleam_version +1 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit.cache +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit.cache_inline +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit.cache_meta +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@gleam_panic.cache +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@gleam_panic.cache_inline +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@gleam_panic.cache_meta +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@reporting.cache +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@reporting.cache_inline +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@reporting.cache_meta +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@should.cache +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@should.cache_inline +0 -0
- package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@should.cache_meta +0 -0
- package/build/dev/javascript/gleeunit/gleam.mjs +1 -0
- package/build/dev/javascript/gleeunit/gleeunit/internal/gleam_panic.mjs +180 -0
- package/build/dev/javascript/gleeunit/gleeunit/internal/gleeunit_gleam_panic_ffi.erl +49 -0
- package/build/dev/javascript/gleeunit/gleeunit/internal/gleeunit_gleam_panic_ffi.mjs +91 -0
- package/build/dev/javascript/gleeunit/gleeunit/internal/reporting.mjs +256 -0
- package/build/dev/javascript/gleeunit/gleeunit/should.mjs +135 -0
- package/build/dev/javascript/gleeunit/gleeunit.erl +89 -0
- package/build/dev/javascript/gleeunit/gleeunit.mjs +62 -0
- package/build/dev/javascript/gleeunit/gleeunit@internal@gleam_panic.erl +56 -0
- package/build/dev/javascript/gleeunit/gleeunit@internal@reporting.erl +343 -0
- package/build/dev/javascript/gleeunit/gleeunit@should.erl +153 -0
- package/build/dev/javascript/gleeunit/gleeunit_ffi.erl +21 -0
- package/build/dev/javascript/gleeunit/gleeunit_ffi.mjs +100 -0
- package/build/dev/javascript/gleeunit/gleeunit_progress.erl +72 -0
- package/build/dev/javascript/prelude.mjs +1575 -0
- package/build/dev/javascript/simplifile/_gleam_artefacts/simplifile.cache +0 -0
- package/build/dev/javascript/simplifile/_gleam_artefacts/simplifile.cache_inline +0 -0
- package/build/dev/javascript/simplifile/_gleam_artefacts/simplifile.cache_meta +0 -0
- package/build/dev/javascript/simplifile/gleam.mjs +1 -0
- package/build/dev/javascript/simplifile/simplifile.erl +893 -0
- package/build/dev/javascript/simplifile/simplifile.mjs +893 -0
- package/build/dev/javascript/simplifile/simplifile_erl.erl +244 -0
- package/build/dev/javascript/simplifile/simplifile_js.mjs +400 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache_inline +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache_meta +0 -0
- package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache_warnings +0 -0
- package/build/dev/javascript/skillc/cli_test.mjs +461 -0
- package/build/dev/javascript/skillc/compiler_test.mjs +3089 -0
- package/build/dev/javascript/skillc/config_test.mjs +308 -0
- package/build/dev/javascript/skillc/gleam.main.mjs +2 -0
- package/build/dev/javascript/skillc/gleam.mjs +1 -0
- package/build/dev/javascript/skillc/importer_test.mjs +1643 -0
- package/build/dev/javascript/skillc/parser_test.mjs +1601 -0
- package/build/dev/javascript/skillc/path_test.mjs +26 -0
- package/build/dev/javascript/skillc/provider_test.mjs +221 -0
- package/build/dev/javascript/skillc/registry_test.mjs +359 -0
- package/build/dev/javascript/skillc/scaffold_test.mjs +405 -0
- package/build/dev/javascript/skillc/skillc/compiler.mjs +724 -0
- package/build/dev/javascript/skillc/skillc/config.mjs +172 -0
- package/build/dev/javascript/skillc/skillc/error.mjs +145 -0
- package/build/dev/javascript/skillc/skillc/fs.mjs +40 -0
- package/build/dev/javascript/skillc/skillc/importer.mjs +975 -0
- package/build/dev/javascript/skillc/skillc/parser.mjs +427 -0
- package/build/dev/javascript/skillc/skillc/path.mjs +52 -0
- package/build/dev/javascript/skillc/skillc/platform.mjs +44 -0
- package/build/dev/javascript/skillc/skillc/provider.mjs +86 -0
- package/build/dev/javascript/skillc/skillc/registry.mjs +701 -0
- package/build/dev/javascript/skillc/skillc/scaffold.mjs +117 -0
- package/build/dev/javascript/skillc/skillc/semver.mjs +293 -0
- package/build/dev/javascript/skillc/skillc/shell.mjs +14 -0
- package/build/dev/javascript/skillc/skillc/template.mjs +1177 -0
- package/build/dev/javascript/skillc/skillc/types.mjs +249 -0
- package/build/dev/javascript/skillc/skillc/version_constraint.mjs +290 -0
- package/build/dev/javascript/skillc/skillc/yaml.mjs +51 -0
- package/build/dev/javascript/skillc/skillc.mjs +873 -0
- package/build/dev/javascript/skillc/skillc_ffi.mjs +30 -0
- package/build/dev/javascript/skillc/skillc_test.mjs +5 -0
- package/build/dev/javascript/skillc/template_test.mjs +1638 -0
- package/build/dev/javascript/skillc/version_constraint_test.mjs +1325 -0
- package/build/dev/javascript/yay/_gleam_artefacts/yay.cache +0 -0
- package/build/dev/javascript/yay/_gleam_artefacts/yay.cache_inline +0 -0
- package/build/dev/javascript/yay/_gleam_artefacts/yay.cache_meta +0 -0
- package/build/dev/javascript/yay/gleam.mjs +1 -0
- package/build/dev/javascript/yay/yaml_ffi.erl +106 -0
- package/build/dev/javascript/yay/yaml_ffi.mjs +373 -0
- package/build/dev/javascript/yay/yay.erl +1218 -0
- package/build/dev/javascript/yay/yay.mjs +1403 -0
- package/package.json +28 -0
- package/src/skillc/compiler.gleam +561 -0
- package/src/skillc/config.gleam +91 -0
- package/src/skillc/error.gleam +37 -0
- package/src/skillc/fs.gleam +31 -0
- package/src/skillc/importer.gleam +709 -0
- package/src/skillc/parser.gleam +279 -0
- package/src/skillc/path.gleam +30 -0
- package/src/skillc/platform.gleam +25 -0
- package/src/skillc/provider.gleam +58 -0
- package/src/skillc/registry.gleam +472 -0
- package/src/skillc/scaffold.gleam +112 -0
- package/src/skillc/semver.gleam +165 -0
- package/src/skillc/shell.gleam +12 -0
- package/src/skillc/template.gleam +885 -0
- package/src/skillc/types.gleam +93 -0
- package/src/skillc/version_constraint.gleam +163 -0
- package/src/skillc/yaml.gleam +27 -0
- package/src/skillc.gleam +466 -0
- package/src/skillc_ffi.mjs +30 -0
|
@@ -0,0 +1,893 @@
|
|
|
1
|
+
-module(simplifile).
|
|
2
|
+
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
|
|
3
|
+
-define(FILEPATH, "src/simplifile.gleam").
|
|
4
|
+
-export([describe_error/1, file_info_permissions_octal/1, file_info_type/1, file_info/1, link_info/1, delete/1, delete_all/1, read_bits/1, read/1, write_bits/2, write/2, append_bits/2, append/2, is_directory/1, create_directory/1, create_symlink/2, create_link/2, read_directory/1, is_file/1, is_symlink/1, create_file/1, create_directory_all/1, copy_file/2, rename_file/2, rename/2, copy_directory/2, copy/2, rename_directory/2, clear_directory/1, get_files/1, file_permissions_to_octal/1, file_info_permissions/1, set_permissions_octal/2, set_permissions/2, current_directory/0]).
|
|
5
|
+
-export_type([file_error/0, file_info/0, file_type/0, permission/0, file_permissions/0]).
|
|
6
|
+
|
|
7
|
+
-if(?OTP_RELEASE >= 27).
|
|
8
|
+
-define(MODULEDOC(Str), -moduledoc(Str)).
|
|
9
|
+
-define(DOC(Str), -doc(Str)).
|
|
10
|
+
-else.
|
|
11
|
+
-define(MODULEDOC(Str), -compile([])).
|
|
12
|
+
-define(DOC(Str), -compile([])).
|
|
13
|
+
-endif.
|
|
14
|
+
|
|
15
|
+
-type file_error() :: eacces |
|
|
16
|
+
eagain |
|
|
17
|
+
ebadf |
|
|
18
|
+
ebadmsg |
|
|
19
|
+
ebusy |
|
|
20
|
+
edeadlk |
|
|
21
|
+
edeadlock |
|
|
22
|
+
edquot |
|
|
23
|
+
eexist |
|
|
24
|
+
efault |
|
|
25
|
+
efbig |
|
|
26
|
+
eftype |
|
|
27
|
+
eintr |
|
|
28
|
+
einval |
|
|
29
|
+
eio |
|
|
30
|
+
eisdir |
|
|
31
|
+
eloop |
|
|
32
|
+
emfile |
|
|
33
|
+
emlink |
|
|
34
|
+
emultihop |
|
|
35
|
+
enametoolong |
|
|
36
|
+
enfile |
|
|
37
|
+
enobufs |
|
|
38
|
+
enodev |
|
|
39
|
+
enolck |
|
|
40
|
+
enolink |
|
|
41
|
+
enoent |
|
|
42
|
+
enomem |
|
|
43
|
+
enospc |
|
|
44
|
+
enosr |
|
|
45
|
+
enostr |
|
|
46
|
+
enosys |
|
|
47
|
+
enotblk |
|
|
48
|
+
enotdir |
|
|
49
|
+
enotsup |
|
|
50
|
+
enxio |
|
|
51
|
+
eopnotsupp |
|
|
52
|
+
eoverflow |
|
|
53
|
+
eperm |
|
|
54
|
+
epipe |
|
|
55
|
+
erange |
|
|
56
|
+
erofs |
|
|
57
|
+
espipe |
|
|
58
|
+
esrch |
|
|
59
|
+
estale |
|
|
60
|
+
etxtbsy |
|
|
61
|
+
exdev |
|
|
62
|
+
not_utf8 |
|
|
63
|
+
{unknown, binary()}.
|
|
64
|
+
|
|
65
|
+
-type file_info() :: {file_info,
|
|
66
|
+
integer(),
|
|
67
|
+
integer(),
|
|
68
|
+
integer(),
|
|
69
|
+
integer(),
|
|
70
|
+
integer(),
|
|
71
|
+
integer(),
|
|
72
|
+
integer(),
|
|
73
|
+
integer(),
|
|
74
|
+
integer(),
|
|
75
|
+
integer()}.
|
|
76
|
+
|
|
77
|
+
-type file_type() :: file | directory | symlink | other.
|
|
78
|
+
|
|
79
|
+
-type permission() :: read | write | execute.
|
|
80
|
+
|
|
81
|
+
-type file_permissions() :: {file_permissions,
|
|
82
|
+
gleam@set:set(permission()),
|
|
83
|
+
gleam@set:set(permission()),
|
|
84
|
+
gleam@set:set(permission())}.
|
|
85
|
+
|
|
86
|
+
-file("src/simplifile.gleam", 124).
|
|
87
|
+
?DOC(
|
|
88
|
+
" Convert an error into a human-readable description\n"
|
|
89
|
+
" ## Example\n"
|
|
90
|
+
" ```gleam\n"
|
|
91
|
+
" let assert \"Input/output error\" = describe_error(Eio)\n"
|
|
92
|
+
" ```\n"
|
|
93
|
+
).
|
|
94
|
+
-spec describe_error(file_error()) -> binary().
|
|
95
|
+
describe_error(Error) ->
|
|
96
|
+
case Error of
|
|
97
|
+
eperm ->
|
|
98
|
+
<<"Operation not permitted"/utf8>>;
|
|
99
|
+
|
|
100
|
+
enoent ->
|
|
101
|
+
<<"No such file or directory"/utf8>>;
|
|
102
|
+
|
|
103
|
+
esrch ->
|
|
104
|
+
<<"No such process"/utf8>>;
|
|
105
|
+
|
|
106
|
+
eintr ->
|
|
107
|
+
<<"Interrupted system call"/utf8>>;
|
|
108
|
+
|
|
109
|
+
eio ->
|
|
110
|
+
<<"Input/output error"/utf8>>;
|
|
111
|
+
|
|
112
|
+
enxio ->
|
|
113
|
+
<<"Device not configured"/utf8>>;
|
|
114
|
+
|
|
115
|
+
ebadf ->
|
|
116
|
+
<<"Bad file descriptor"/utf8>>;
|
|
117
|
+
|
|
118
|
+
edeadlk ->
|
|
119
|
+
<<"Resource deadlock avoided"/utf8>>;
|
|
120
|
+
|
|
121
|
+
edeadlock ->
|
|
122
|
+
<<"Resource deadlock avoided"/utf8>>;
|
|
123
|
+
|
|
124
|
+
enomem ->
|
|
125
|
+
<<"Cannot allocate memory"/utf8>>;
|
|
126
|
+
|
|
127
|
+
eacces ->
|
|
128
|
+
<<"Permission denied"/utf8>>;
|
|
129
|
+
|
|
130
|
+
efault ->
|
|
131
|
+
<<"Bad address"/utf8>>;
|
|
132
|
+
|
|
133
|
+
enotblk ->
|
|
134
|
+
<<"Block device required"/utf8>>;
|
|
135
|
+
|
|
136
|
+
ebusy ->
|
|
137
|
+
<<"Resource busy"/utf8>>;
|
|
138
|
+
|
|
139
|
+
eexist ->
|
|
140
|
+
<<"File exists"/utf8>>;
|
|
141
|
+
|
|
142
|
+
exdev ->
|
|
143
|
+
<<"Cross-device link"/utf8>>;
|
|
144
|
+
|
|
145
|
+
enodev ->
|
|
146
|
+
<<"Operation not supported by device"/utf8>>;
|
|
147
|
+
|
|
148
|
+
enotdir ->
|
|
149
|
+
<<"Not a directory"/utf8>>;
|
|
150
|
+
|
|
151
|
+
eisdir ->
|
|
152
|
+
<<"Is a directory"/utf8>>;
|
|
153
|
+
|
|
154
|
+
einval ->
|
|
155
|
+
<<"Invalid argument"/utf8>>;
|
|
156
|
+
|
|
157
|
+
enfile ->
|
|
158
|
+
<<"Too many open files in system"/utf8>>;
|
|
159
|
+
|
|
160
|
+
emfile ->
|
|
161
|
+
<<"Too many open files"/utf8>>;
|
|
162
|
+
|
|
163
|
+
etxtbsy ->
|
|
164
|
+
<<"Text file busy"/utf8>>;
|
|
165
|
+
|
|
166
|
+
efbig ->
|
|
167
|
+
<<"File too large"/utf8>>;
|
|
168
|
+
|
|
169
|
+
enospc ->
|
|
170
|
+
<<"No space left on device"/utf8>>;
|
|
171
|
+
|
|
172
|
+
espipe ->
|
|
173
|
+
<<"Illegal seek"/utf8>>;
|
|
174
|
+
|
|
175
|
+
erofs ->
|
|
176
|
+
<<"Read-only file system"/utf8>>;
|
|
177
|
+
|
|
178
|
+
emlink ->
|
|
179
|
+
<<"Too many links"/utf8>>;
|
|
180
|
+
|
|
181
|
+
epipe ->
|
|
182
|
+
<<"Broken pipe"/utf8>>;
|
|
183
|
+
|
|
184
|
+
erange ->
|
|
185
|
+
<<"Result too large"/utf8>>;
|
|
186
|
+
|
|
187
|
+
eagain ->
|
|
188
|
+
<<"Resource temporarily unavailable"/utf8>>;
|
|
189
|
+
|
|
190
|
+
enotsup ->
|
|
191
|
+
<<"Operation not supported"/utf8>>;
|
|
192
|
+
|
|
193
|
+
enobufs ->
|
|
194
|
+
<<"No buffer space available"/utf8>>;
|
|
195
|
+
|
|
196
|
+
eloop ->
|
|
197
|
+
<<"Too many levels of symbolic links"/utf8>>;
|
|
198
|
+
|
|
199
|
+
enametoolong ->
|
|
200
|
+
<<"File name too long"/utf8>>;
|
|
201
|
+
|
|
202
|
+
edquot ->
|
|
203
|
+
<<"Disc quota exceeded"/utf8>>;
|
|
204
|
+
|
|
205
|
+
estale ->
|
|
206
|
+
<<"Stale NFS file handle"/utf8>>;
|
|
207
|
+
|
|
208
|
+
enolck ->
|
|
209
|
+
<<"No locks available"/utf8>>;
|
|
210
|
+
|
|
211
|
+
enosys ->
|
|
212
|
+
<<"Function not implemented"/utf8>>;
|
|
213
|
+
|
|
214
|
+
eftype ->
|
|
215
|
+
<<"Inappropriate file type or format"/utf8>>;
|
|
216
|
+
|
|
217
|
+
eoverflow ->
|
|
218
|
+
<<"Value too large to be stored in data type"/utf8>>;
|
|
219
|
+
|
|
220
|
+
ebadmsg ->
|
|
221
|
+
<<"Bad message"/utf8>>;
|
|
222
|
+
|
|
223
|
+
emultihop ->
|
|
224
|
+
<<"Multihop attempted"/utf8>>;
|
|
225
|
+
|
|
226
|
+
enolink ->
|
|
227
|
+
<<"Link has been severed"/utf8>>;
|
|
228
|
+
|
|
229
|
+
enosr ->
|
|
230
|
+
<<"No STREAM resources"/utf8>>;
|
|
231
|
+
|
|
232
|
+
enostr ->
|
|
233
|
+
<<"Not a STREAM"/utf8>>;
|
|
234
|
+
|
|
235
|
+
eopnotsupp ->
|
|
236
|
+
<<"Operation not supported on socket"/utf8>>;
|
|
237
|
+
|
|
238
|
+
not_utf8 ->
|
|
239
|
+
<<"File not UTF-8 encoded"/utf8>>;
|
|
240
|
+
|
|
241
|
+
{unknown, Inner} ->
|
|
242
|
+
<<"Unknown error: "/utf8, Inner/binary>>
|
|
243
|
+
end.
|
|
244
|
+
|
|
245
|
+
-file("src/simplifile.gleam", 232).
|
|
246
|
+
?DOC(
|
|
247
|
+
" Extract the file permissions from a given FileInfo value in their octal representation.\n"
|
|
248
|
+
"\n"
|
|
249
|
+
" ## Example\n"
|
|
250
|
+
" ```gleam\n"
|
|
251
|
+
" use info <- result.try(simplifile.file_info(\"src/app.gleam\"))\n"
|
|
252
|
+
" simplifile.file_info_permissions_octal(info)\n"
|
|
253
|
+
" // --> 0o644\n"
|
|
254
|
+
" ```\n"
|
|
255
|
+
).
|
|
256
|
+
-spec file_info_permissions_octal(file_info()) -> integer().
|
|
257
|
+
file_info_permissions_octal(File_info) ->
|
|
258
|
+
erlang:'band'(erlang:element(3, File_info), 8#777).
|
|
259
|
+
|
|
260
|
+
-file("src/simplifile.gleam", 261).
|
|
261
|
+
?DOC(
|
|
262
|
+
" Extract the file type from a given FileInfo value.\n"
|
|
263
|
+
"\n"
|
|
264
|
+
" ## Example\n"
|
|
265
|
+
" ```gleam\n"
|
|
266
|
+
" use info <- result.try(simplifile.file_info(\"src/app.gleam\"))\n"
|
|
267
|
+
" simplifile.file_info_type(info)\n"
|
|
268
|
+
" // --> simplifile.File\n"
|
|
269
|
+
" ```\n"
|
|
270
|
+
).
|
|
271
|
+
-spec file_info_type(file_info()) -> file_type().
|
|
272
|
+
file_info_type(File_info) ->
|
|
273
|
+
case erlang:'band'(erlang:element(3, File_info), 8#170000) of
|
|
274
|
+
8#100000 ->
|
|
275
|
+
file;
|
|
276
|
+
|
|
277
|
+
8#40000 ->
|
|
278
|
+
directory;
|
|
279
|
+
|
|
280
|
+
8#120000 ->
|
|
281
|
+
symlink;
|
|
282
|
+
|
|
283
|
+
_ ->
|
|
284
|
+
other
|
|
285
|
+
end.
|
|
286
|
+
|
|
287
|
+
-file("src/simplifile.gleam", 281).
|
|
288
|
+
?DOC(
|
|
289
|
+
" Get information about a file at a given path\n"
|
|
290
|
+
"\n"
|
|
291
|
+
" When the given `filepath` points to a symlink, this function will follow\n"
|
|
292
|
+
" the symlink and return information about the target file.\n"
|
|
293
|
+
"\n"
|
|
294
|
+
" See `link_info` if you want to get information about a symlink instead.\n"
|
|
295
|
+
).
|
|
296
|
+
-spec file_info(binary()) -> {ok, file_info()} | {error, file_error()}.
|
|
297
|
+
file_info(Filepath) ->
|
|
298
|
+
simplifile_erl:file_info(Filepath).
|
|
299
|
+
|
|
300
|
+
-file("src/simplifile.gleam", 291).
|
|
301
|
+
?DOC(
|
|
302
|
+
" Get information about a file at a given path\n"
|
|
303
|
+
"\n"
|
|
304
|
+
" When the given `filepath` is a symlink, this function will return\n"
|
|
305
|
+
" infromation about the symlink itself.\n"
|
|
306
|
+
"\n"
|
|
307
|
+
" See `file_info` if you want to follow symlinks instead.\n"
|
|
308
|
+
).
|
|
309
|
+
-spec link_info(binary()) -> {ok, file_info()} | {error, file_error()}.
|
|
310
|
+
link_info(Filepath) ->
|
|
311
|
+
simplifile_erl:link_info(Filepath).
|
|
312
|
+
|
|
313
|
+
-file("src/simplifile.gleam", 335).
|
|
314
|
+
?DOC(
|
|
315
|
+
" Delete a file or directory at a given path. Performs a recursive\n"
|
|
316
|
+
" delete on a directory.\n"
|
|
317
|
+
" Throws an error if the path does not exist.\n"
|
|
318
|
+
" ## Example\n"
|
|
319
|
+
" ```gleam\n"
|
|
320
|
+
" let assert Ok(Nil) = delete(file_at: \"./delete_me.txt\")\n"
|
|
321
|
+
" ```\n"
|
|
322
|
+
).
|
|
323
|
+
-spec delete(binary()) -> {ok, nil} | {error, file_error()}.
|
|
324
|
+
delete(Path) ->
|
|
325
|
+
simplifile_erl:delete(Path).
|
|
326
|
+
|
|
327
|
+
-file("src/simplifile.gleam", 342).
|
|
328
|
+
?DOC(
|
|
329
|
+
" Delete all files/directories specified in a list of paths.\n"
|
|
330
|
+
" Recursively deletes provided directories.\n"
|
|
331
|
+
" Does not return an error if one or more of the provided paths\n"
|
|
332
|
+
" do not exist.\n"
|
|
333
|
+
).
|
|
334
|
+
-spec delete_all(list(binary())) -> {ok, nil} | {error, file_error()}.
|
|
335
|
+
delete_all(Paths) ->
|
|
336
|
+
case Paths of
|
|
337
|
+
[] ->
|
|
338
|
+
{ok, nil};
|
|
339
|
+
|
|
340
|
+
[Path | Rest] ->
|
|
341
|
+
case simplifile_erl:delete(Path) of
|
|
342
|
+
{ok, nil} ->
|
|
343
|
+
delete_all(Rest);
|
|
344
|
+
|
|
345
|
+
{error, enoent} ->
|
|
346
|
+
delete_all(Rest);
|
|
347
|
+
|
|
348
|
+
E ->
|
|
349
|
+
E
|
|
350
|
+
end
|
|
351
|
+
end.
|
|
352
|
+
|
|
353
|
+
-file("src/simplifile.gleam", 376).
|
|
354
|
+
?DOC(
|
|
355
|
+
" Read a files contents as a bitstring\n"
|
|
356
|
+
" ## Example\n"
|
|
357
|
+
" ```gleam\n"
|
|
358
|
+
" let assert Ok(records) = read_bits(from: \"./users.csv\")\n"
|
|
359
|
+
" ```\n"
|
|
360
|
+
).
|
|
361
|
+
-spec read_bits(binary()) -> {ok, bitstring()} | {error, file_error()}.
|
|
362
|
+
read_bits(Filepath) ->
|
|
363
|
+
simplifile_erl:read_bits(Filepath).
|
|
364
|
+
|
|
365
|
+
-file("src/simplifile.gleam", 299).
|
|
366
|
+
?DOC(
|
|
367
|
+
" Read a files contents as a string\n"
|
|
368
|
+
" ## Example\n"
|
|
369
|
+
" ```gleam\n"
|
|
370
|
+
" let assert Ok(records) = read(from: \"./users.csv\")\n"
|
|
371
|
+
" ```\n"
|
|
372
|
+
).
|
|
373
|
+
-spec read(binary()) -> {ok, binary()} | {error, file_error()}.
|
|
374
|
+
read(Filepath) ->
|
|
375
|
+
case simplifile_erl:read_bits(Filepath) of
|
|
376
|
+
{ok, Bits} ->
|
|
377
|
+
case gleam@bit_array:to_string(Bits) of
|
|
378
|
+
{ok, Str} ->
|
|
379
|
+
{ok, Str};
|
|
380
|
+
|
|
381
|
+
_ ->
|
|
382
|
+
{error, not_utf8}
|
|
383
|
+
end;
|
|
384
|
+
|
|
385
|
+
{error, E} ->
|
|
386
|
+
{error, E}
|
|
387
|
+
end.
|
|
388
|
+
|
|
389
|
+
-file("src/simplifile.gleam", 386).
|
|
390
|
+
?DOC(
|
|
391
|
+
" Write a bitstring to a file at the given path\n"
|
|
392
|
+
" ## Example\n"
|
|
393
|
+
" ```gleam\n"
|
|
394
|
+
" let assert Ok(Nil) = write_bits(to: \"./hello_world.txt\", bits: <<\"Hello, World!\":utf8>>)\n"
|
|
395
|
+
" ```\n"
|
|
396
|
+
).
|
|
397
|
+
-spec write_bits(binary(), bitstring()) -> {ok, nil} | {error, file_error()}.
|
|
398
|
+
write_bits(Filepath, Bits) ->
|
|
399
|
+
simplifile_erl:write_bits(Filepath, Bits).
|
|
400
|
+
|
|
401
|
+
-file("src/simplifile.gleam", 317).
|
|
402
|
+
?DOC(
|
|
403
|
+
" Write a string to a file at the given path\n"
|
|
404
|
+
" ## Example\n"
|
|
405
|
+
" ```gleam\n"
|
|
406
|
+
" let assert Ok(Nil) = write(to: \"./hello_world.txt\", contents: \"Hello, World!\")\n"
|
|
407
|
+
" ```\n"
|
|
408
|
+
).
|
|
409
|
+
-spec write(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
410
|
+
write(Filepath, Contents) ->
|
|
411
|
+
_pipe = Contents,
|
|
412
|
+
_pipe@1 = gleam_stdlib:identity(_pipe),
|
|
413
|
+
simplifile_erl:write_bits(Filepath, _pipe@1).
|
|
414
|
+
|
|
415
|
+
-file("src/simplifile.gleam", 399).
|
|
416
|
+
?DOC(
|
|
417
|
+
" Append a bitstring to the contents of a file at the given path\n"
|
|
418
|
+
" ## Example\n"
|
|
419
|
+
" ```gleam\n"
|
|
420
|
+
" let assert Ok(Nil) = append_bits(to: \"./needs_more_text.txt\", bits: <<\"more text\":utf8>>)\n"
|
|
421
|
+
" ```\n"
|
|
422
|
+
).
|
|
423
|
+
-spec append_bits(binary(), bitstring()) -> {ok, nil} | {error, file_error()}.
|
|
424
|
+
append_bits(Filepath, Bits) ->
|
|
425
|
+
simplifile_erl:append_bits(Filepath, Bits).
|
|
426
|
+
|
|
427
|
+
-file("src/simplifile.gleam", 360).
|
|
428
|
+
?DOC(
|
|
429
|
+
" Append a string to the contents of a file at the given path\n"
|
|
430
|
+
" ## Example\n"
|
|
431
|
+
" ```gleam\n"
|
|
432
|
+
" let assert Ok(Nil) = append(to: \"./needs_more_text.txt\", contents: \"more text\")\n"
|
|
433
|
+
" ```\n"
|
|
434
|
+
).
|
|
435
|
+
-spec append(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
436
|
+
append(Filepath, Contents) ->
|
|
437
|
+
_pipe = Contents,
|
|
438
|
+
_pipe@1 = gleam_stdlib:identity(_pipe),
|
|
439
|
+
simplifile_erl:append_bits(Filepath, _pipe@1).
|
|
440
|
+
|
|
441
|
+
-file("src/simplifile.gleam", 413).
|
|
442
|
+
?DOC(
|
|
443
|
+
" Checks if the provided filepath exists and is a directory.\n"
|
|
444
|
+
" Returns an error if it lacks permissions to read the directory.\n"
|
|
445
|
+
"\n"
|
|
446
|
+
" ## Example\n"
|
|
447
|
+
" ```gleam\n"
|
|
448
|
+
" let assert Ok(True) = is_directory(\"./test\")\n"
|
|
449
|
+
" ```\n"
|
|
450
|
+
).
|
|
451
|
+
-spec is_directory(binary()) -> {ok, boolean()} | {error, file_error()}.
|
|
452
|
+
is_directory(Filepath) ->
|
|
453
|
+
simplifile_erl:is_directory(Filepath).
|
|
454
|
+
|
|
455
|
+
-file("src/simplifile.gleam", 424).
|
|
456
|
+
?DOC(
|
|
457
|
+
" Create a directory at the provided filepath. Returns an error if\n"
|
|
458
|
+
" the directory already exists.\n"
|
|
459
|
+
"\n"
|
|
460
|
+
" ## Example\n"
|
|
461
|
+
" ```gleam\n"
|
|
462
|
+
" create_directory(\"./test\")\n"
|
|
463
|
+
" ```\n"
|
|
464
|
+
).
|
|
465
|
+
-spec create_directory(binary()) -> {ok, nil} | {error, file_error()}.
|
|
466
|
+
create_directory(Filepath) ->
|
|
467
|
+
simplifile_erl:create_directory(Filepath).
|
|
468
|
+
|
|
469
|
+
-file("src/simplifile.gleam", 439).
|
|
470
|
+
?DOC(
|
|
471
|
+
" Create a symbolic link called symlink pointing to target.\n"
|
|
472
|
+
" \n"
|
|
473
|
+
" ### Footgun Alert \n"
|
|
474
|
+
" the target path is relative to *the symlink*,\n"
|
|
475
|
+
" not the current working directory. I will likely be updating \n"
|
|
476
|
+
" the label on the next major version to reflect that.\n"
|
|
477
|
+
"\n"
|
|
478
|
+
" ## Example\n"
|
|
479
|
+
" ```gleam\n"
|
|
480
|
+
" create_symlink(\"../target\", \"./symlink\")\n"
|
|
481
|
+
" ```\n"
|
|
482
|
+
).
|
|
483
|
+
-spec create_symlink(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
484
|
+
create_symlink(Target, Symlink) ->
|
|
485
|
+
simplifile_erl:create_symlink(Target, Symlink).
|
|
486
|
+
|
|
487
|
+
-file("src/simplifile.gleam", 454).
|
|
488
|
+
?DOC(
|
|
489
|
+
" Create a \"hard link\" called symlink pointing to target.\n"
|
|
490
|
+
" This does not have the same relative pathing footgun as \n"
|
|
491
|
+
" `create_symlink`.\n"
|
|
492
|
+
" \n"
|
|
493
|
+
" ## Example\n"
|
|
494
|
+
" ```gleam\n"
|
|
495
|
+
" create_link(\"../target\", \"./link\")\n"
|
|
496
|
+
" ```\n"
|
|
497
|
+
).
|
|
498
|
+
-spec create_link(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
499
|
+
create_link(Target, Link) ->
|
|
500
|
+
simplifile_erl:create_link(Target, Link).
|
|
501
|
+
|
|
502
|
+
-file("src/simplifile.gleam", 469).
|
|
503
|
+
?DOC(
|
|
504
|
+
" Lists the contents of a directory.\n"
|
|
505
|
+
" The list contains directory and file names, and is not recursive.\n"
|
|
506
|
+
"\n"
|
|
507
|
+
" ## Example\n"
|
|
508
|
+
" ```gleam\n"
|
|
509
|
+
" let assert Ok(files_and_folders) = read_directory(at: \"./Folder1\")\n"
|
|
510
|
+
" ```\n"
|
|
511
|
+
).
|
|
512
|
+
-spec read_directory(binary()) -> {ok, list(binary())} | {error, file_error()}.
|
|
513
|
+
read_directory(Path) ->
|
|
514
|
+
simplifile_erl:read_directory(Path).
|
|
515
|
+
|
|
516
|
+
-file("src/simplifile.gleam", 481).
|
|
517
|
+
?DOC(
|
|
518
|
+
" Checks if the file at the provided filepath exists and is a file.\n"
|
|
519
|
+
" Returns an Error if it lacks permissions to read the file.\n"
|
|
520
|
+
"\n"
|
|
521
|
+
" ## Example\n"
|
|
522
|
+
" ```gleam\n"
|
|
523
|
+
" let assert Ok(True) = is_file(\"./test.txt\")\n"
|
|
524
|
+
" ```\n"
|
|
525
|
+
).
|
|
526
|
+
-spec is_file(binary()) -> {ok, boolean()} | {error, file_error()}.
|
|
527
|
+
is_file(Filepath) ->
|
|
528
|
+
simplifile_erl:is_file(Filepath).
|
|
529
|
+
|
|
530
|
+
-file("src/simplifile.gleam", 493).
|
|
531
|
+
?DOC(
|
|
532
|
+
" Checks if the file at the provided filepath exists and is a symbolic link.\n"
|
|
533
|
+
" Returns an Error if it lacks permissions to read the file.\n"
|
|
534
|
+
"\n"
|
|
535
|
+
" ## Example\n"
|
|
536
|
+
" ```gleam\n"
|
|
537
|
+
" let assert Ok(True) = is_symlink(\"./symlink\")\n"
|
|
538
|
+
" ```\n"
|
|
539
|
+
).
|
|
540
|
+
-spec is_symlink(binary()) -> {ok, boolean()} | {error, file_error()}.
|
|
541
|
+
is_symlink(Filepath) ->
|
|
542
|
+
simplifile_erl:is_symlink(Filepath).
|
|
543
|
+
|
|
544
|
+
-file("src/simplifile.gleam", 498).
|
|
545
|
+
?DOC(
|
|
546
|
+
" Creates an empty file at the given filepath. Returns an `Error(Eexist)`\n"
|
|
547
|
+
" if the file already exists.\n"
|
|
548
|
+
).
|
|
549
|
+
-spec create_file(binary()) -> {ok, nil} | {error, file_error()}.
|
|
550
|
+
create_file(Filepath) ->
|
|
551
|
+
case {begin
|
|
552
|
+
_pipe = Filepath,
|
|
553
|
+
simplifile_erl:is_file(_pipe)
|
|
554
|
+
end,
|
|
555
|
+
begin
|
|
556
|
+
_pipe@1 = Filepath,
|
|
557
|
+
simplifile_erl:is_directory(_pipe@1)
|
|
558
|
+
end} of
|
|
559
|
+
{{ok, true}, _} ->
|
|
560
|
+
{error, eexist};
|
|
561
|
+
|
|
562
|
+
{_, {ok, true}} ->
|
|
563
|
+
{error, eexist};
|
|
564
|
+
|
|
565
|
+
{_, _} ->
|
|
566
|
+
simplifile_erl:write_bits(Filepath, <<>>)
|
|
567
|
+
end.
|
|
568
|
+
|
|
569
|
+
-file("src/simplifile.gleam", 509).
|
|
570
|
+
?DOC(
|
|
571
|
+
" Recursively creates necessary directories for a given directory\n"
|
|
572
|
+
" path. Note that if you pass a path that \"looks like\" a file, i.e.\n"
|
|
573
|
+
" `./a/b.txt`, a folder named `b.txt` will be created, so be sure\n"
|
|
574
|
+
" to pass only the path to the required directory.\n"
|
|
575
|
+
).
|
|
576
|
+
-spec create_directory_all(binary()) -> {ok, nil} | {error, file_error()}.
|
|
577
|
+
create_directory_all(Dirpath) ->
|
|
578
|
+
simplifile_erl:create_dir_all(<<Dirpath/binary, "/"/utf8>>).
|
|
579
|
+
|
|
580
|
+
-file("src/simplifile.gleam", 539).
|
|
581
|
+
?DOC(
|
|
582
|
+
" Copy a file at a given path to another path.\n"
|
|
583
|
+
" Note: destination should include the filename, not just the directory\n"
|
|
584
|
+
).
|
|
585
|
+
-spec copy_file(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
586
|
+
copy_file(Src, Dest) ->
|
|
587
|
+
_pipe = file:copy(Src, Dest),
|
|
588
|
+
gleam@result:replace(_pipe, nil).
|
|
589
|
+
|
|
590
|
+
-file("src/simplifile.gleam", 553).
|
|
591
|
+
?DOC(
|
|
592
|
+
" Rename a file at a given path to another path.\n"
|
|
593
|
+
" Note: destination should include the filename, not just the directory\n"
|
|
594
|
+
).
|
|
595
|
+
-spec rename_file(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
596
|
+
rename_file(Src, Dest) ->
|
|
597
|
+
simplifile_erl:rename_file(Src, Dest).
|
|
598
|
+
|
|
599
|
+
-file("src/simplifile.gleam", 558).
|
|
600
|
+
?DOC(" Rename a file or directory.\n").
|
|
601
|
+
-spec rename(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
602
|
+
rename(Src, Dest) ->
|
|
603
|
+
simplifile_erl:rename_file(Src, Dest).
|
|
604
|
+
|
|
605
|
+
-file("src/simplifile.gleam", 569).
|
|
606
|
+
-spec do_copy_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
607
|
+
do_copy_directory(Src, Dest) ->
|
|
608
|
+
gleam@result:'try'(
|
|
609
|
+
simplifile_erl:read_directory(Src),
|
|
610
|
+
fun(Segments) ->
|
|
611
|
+
_pipe = Segments,
|
|
612
|
+
gleam@list:each(
|
|
613
|
+
_pipe,
|
|
614
|
+
fun(Segment) ->
|
|
615
|
+
Src_path = filepath:join(Src, Segment),
|
|
616
|
+
Dest_path = filepath:join(Dest, Segment),
|
|
617
|
+
gleam@result:'try'(
|
|
618
|
+
simplifile_erl:file_info(Src_path),
|
|
619
|
+
fun(Src_info) -> case file_info_type(Src_info) of
|
|
620
|
+
file ->
|
|
621
|
+
gleam@result:'try'(
|
|
622
|
+
simplifile_erl:read_bits(Src_path),
|
|
623
|
+
fun(Content) -> _pipe@1 = Content,
|
|
624
|
+
simplifile_erl:write_bits(
|
|
625
|
+
Dest_path,
|
|
626
|
+
_pipe@1
|
|
627
|
+
) end
|
|
628
|
+
);
|
|
629
|
+
|
|
630
|
+
directory ->
|
|
631
|
+
gleam@result:'try'(
|
|
632
|
+
simplifile_erl:create_directory(
|
|
633
|
+
Dest_path
|
|
634
|
+
),
|
|
635
|
+
fun(_) ->
|
|
636
|
+
do_copy_directory(
|
|
637
|
+
Src_path,
|
|
638
|
+
Dest_path
|
|
639
|
+
)
|
|
640
|
+
end
|
|
641
|
+
);
|
|
642
|
+
|
|
643
|
+
symlink ->
|
|
644
|
+
{error,
|
|
645
|
+
{unknown,
|
|
646
|
+
<<"This is an internal bug where the `file_info` is somehow returning info about a simlink. Please file an issue on the simplifile repo."/utf8>>}};
|
|
647
|
+
|
|
648
|
+
other ->
|
|
649
|
+
{error,
|
|
650
|
+
{unknown,
|
|
651
|
+
<<"Unknown file type (not file, directory, or simlink)"/utf8>>}}
|
|
652
|
+
end end
|
|
653
|
+
)
|
|
654
|
+
end
|
|
655
|
+
),
|
|
656
|
+
{ok, nil}
|
|
657
|
+
end
|
|
658
|
+
).
|
|
659
|
+
|
|
660
|
+
-file("src/simplifile.gleam", 561).
|
|
661
|
+
?DOC(" Copy a directory recursively\n").
|
|
662
|
+
-spec copy_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
663
|
+
copy_directory(Src, Dest) ->
|
|
664
|
+
gleam@result:'try'(
|
|
665
|
+
create_directory_all(Dest),
|
|
666
|
+
fun(_) -> do_copy_directory(Src, Dest) end
|
|
667
|
+
).
|
|
668
|
+
|
|
669
|
+
-file("src/simplifile.gleam", 523).
|
|
670
|
+
?DOC(
|
|
671
|
+
" Copy a file or a directory to a new path. Copies directories recursively.\n"
|
|
672
|
+
" \n"
|
|
673
|
+
" ### Performance Note \n"
|
|
674
|
+
" This function does work to determine if the src path\n"
|
|
675
|
+
" points to a file or a directory. Consider using one of the the dedicated \n"
|
|
676
|
+
" functions `copy_file` or `copy_directory` if you already know which one you need.\n"
|
|
677
|
+
).
|
|
678
|
+
-spec copy(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
679
|
+
copy(Src, Dest) ->
|
|
680
|
+
gleam@result:'try'(
|
|
681
|
+
simplifile_erl:file_info(Src),
|
|
682
|
+
fun(Src_info) -> case file_info_type(Src_info) of
|
|
683
|
+
file ->
|
|
684
|
+
copy_file(Src, Dest);
|
|
685
|
+
|
|
686
|
+
directory ->
|
|
687
|
+
copy_directory(Src, Dest);
|
|
688
|
+
|
|
689
|
+
symlink ->
|
|
690
|
+
{error,
|
|
691
|
+
{unknown,
|
|
692
|
+
<<"This is an internal bug where the `file_info` is somehow returning info about a simlink. Please file an issue on the simplifile repo."/utf8>>}};
|
|
693
|
+
|
|
694
|
+
other ->
|
|
695
|
+
{error,
|
|
696
|
+
{unknown,
|
|
697
|
+
<<"Unknown file type (not file, directory, or simlink)"/utf8>>}}
|
|
698
|
+
end end
|
|
699
|
+
).
|
|
700
|
+
|
|
701
|
+
-file("src/simplifile.gleam", 605).
|
|
702
|
+
?DOC(" Copy a directory recursively and then delete the old one.\n").
|
|
703
|
+
-spec rename_directory(binary(), binary()) -> {ok, nil} | {error, file_error()}.
|
|
704
|
+
rename_directory(Src, Dest) ->
|
|
705
|
+
gleam@result:'try'(
|
|
706
|
+
copy_directory(Src, Dest),
|
|
707
|
+
fun(_) -> simplifile_erl:delete(Src) end
|
|
708
|
+
).
|
|
709
|
+
|
|
710
|
+
-file("src/simplifile.gleam", 615).
|
|
711
|
+
?DOC(
|
|
712
|
+
" Clear the contents of a directory, deleting all files and directories within\n"
|
|
713
|
+
" but leaving the top level directory in place.\n"
|
|
714
|
+
).
|
|
715
|
+
-spec clear_directory(binary()) -> {ok, nil} | {error, file_error()}.
|
|
716
|
+
clear_directory(Path) ->
|
|
717
|
+
gleam@result:'try'(
|
|
718
|
+
simplifile_erl:read_directory(Path),
|
|
719
|
+
fun(Paths) -> _pipe = Paths,
|
|
720
|
+
_pipe@1 = gleam@list:map(
|
|
721
|
+
_pipe,
|
|
722
|
+
fun(_capture) -> filepath:join(Path, _capture) end
|
|
723
|
+
),
|
|
724
|
+
delete_all(_pipe@1) end
|
|
725
|
+
).
|
|
726
|
+
|
|
727
|
+
-file("src/simplifile.gleam", 625).
|
|
728
|
+
?DOC(
|
|
729
|
+
" Returns a list of filepaths for every file in the directory, including nested\n"
|
|
730
|
+
" files.\n"
|
|
731
|
+
).
|
|
732
|
+
-spec get_files(binary()) -> {ok, list(binary())} | {error, file_error()}.
|
|
733
|
+
get_files(Directory) ->
|
|
734
|
+
gleam@result:'try'(
|
|
735
|
+
simplifile_erl:read_directory(Directory),
|
|
736
|
+
fun(Contents) ->
|
|
737
|
+
gleam@list:try_fold(
|
|
738
|
+
Contents,
|
|
739
|
+
[],
|
|
740
|
+
fun(Acc, Content) ->
|
|
741
|
+
Path = filepath:join(Directory, Content),
|
|
742
|
+
gleam@result:'try'(
|
|
743
|
+
simplifile_erl:file_info(Path),
|
|
744
|
+
fun(Info) -> case file_info_type(Info) of
|
|
745
|
+
file ->
|
|
746
|
+
{ok, [Path | Acc]};
|
|
747
|
+
|
|
748
|
+
directory ->
|
|
749
|
+
gleam@result:'try'(
|
|
750
|
+
get_files(Path),
|
|
751
|
+
fun(Nested_files) ->
|
|
752
|
+
{ok,
|
|
753
|
+
lists:append(Acc, Nested_files)}
|
|
754
|
+
end
|
|
755
|
+
);
|
|
756
|
+
|
|
757
|
+
_ ->
|
|
758
|
+
{ok, Acc}
|
|
759
|
+
end end
|
|
760
|
+
)
|
|
761
|
+
end
|
|
762
|
+
)
|
|
763
|
+
end
|
|
764
|
+
).
|
|
765
|
+
|
|
766
|
+
-file("src/simplifile.gleam", 648).
|
|
767
|
+
-spec permission_to_integer(permission()) -> integer().
|
|
768
|
+
permission_to_integer(Permission) ->
|
|
769
|
+
case Permission of
|
|
770
|
+
read ->
|
|
771
|
+
8#4;
|
|
772
|
+
|
|
773
|
+
write ->
|
|
774
|
+
8#2;
|
|
775
|
+
|
|
776
|
+
execute ->
|
|
777
|
+
8#1
|
|
778
|
+
end.
|
|
779
|
+
|
|
780
|
+
-file("src/simplifile.gleam", 656).
|
|
781
|
+
-spec integer_to_permissions(integer()) -> gleam@set:set(permission()).
|
|
782
|
+
integer_to_permissions(Integer) ->
|
|
783
|
+
case erlang:'band'(Integer, 7) of
|
|
784
|
+
7 ->
|
|
785
|
+
gleam@set:from_list([read, write, execute]);
|
|
786
|
+
|
|
787
|
+
6 ->
|
|
788
|
+
gleam@set:from_list([read, write]);
|
|
789
|
+
|
|
790
|
+
5 ->
|
|
791
|
+
gleam@set:from_list([read, execute]);
|
|
792
|
+
|
|
793
|
+
3 ->
|
|
794
|
+
gleam@set:from_list([write, execute]);
|
|
795
|
+
|
|
796
|
+
4 ->
|
|
797
|
+
gleam@set:from_list([read]);
|
|
798
|
+
|
|
799
|
+
2 ->
|
|
800
|
+
gleam@set:from_list([write]);
|
|
801
|
+
|
|
802
|
+
1 ->
|
|
803
|
+
gleam@set:from_list([execute]);
|
|
804
|
+
|
|
805
|
+
0 ->
|
|
806
|
+
gleam@set:new();
|
|
807
|
+
|
|
808
|
+
_ ->
|
|
809
|
+
erlang:error(#{gleam_error => panic,
|
|
810
|
+
message => <<"`panic` expression evaluated."/utf8>>,
|
|
811
|
+
file => <<?FILEPATH/utf8>>,
|
|
812
|
+
module => <<"simplifile"/utf8>>,
|
|
813
|
+
function => <<"integer_to_permissions"/utf8>>,
|
|
814
|
+
line => 667})
|
|
815
|
+
end.
|
|
816
|
+
|
|
817
|
+
-file("src/simplifile.gleam", 680).
|
|
818
|
+
-spec file_permissions_to_octal(file_permissions()) -> integer().
|
|
819
|
+
file_permissions_to_octal(Permissions) ->
|
|
820
|
+
Make_permission_digit = fun(Permissions@1) -> _pipe = Permissions@1,
|
|
821
|
+
_pipe@1 = gleam@set:to_list(_pipe),
|
|
822
|
+
_pipe@2 = gleam@list:map(_pipe@1, fun permission_to_integer/1),
|
|
823
|
+
gleam@int:sum(_pipe@2) end,
|
|
824
|
+
((Make_permission_digit(erlang:element(2, Permissions)) * 64) + (Make_permission_digit(
|
|
825
|
+
erlang:element(3, Permissions)
|
|
826
|
+
)
|
|
827
|
+
* 8))
|
|
828
|
+
+ Make_permission_digit(erlang:element(4, Permissions)).
|
|
829
|
+
|
|
830
|
+
-file("src/simplifile.gleam", 695).
|
|
831
|
+
-spec octal_to_file_permissions(integer()) -> file_permissions().
|
|
832
|
+
octal_to_file_permissions(Octal) ->
|
|
833
|
+
{file_permissions,
|
|
834
|
+
begin
|
|
835
|
+
_pipe = Octal,
|
|
836
|
+
_pipe@1 = erlang:'bsr'(_pipe, 6),
|
|
837
|
+
integer_to_permissions(_pipe@1)
|
|
838
|
+
end,
|
|
839
|
+
begin
|
|
840
|
+
_pipe@2 = Octal,
|
|
841
|
+
_pipe@3 = erlang:'bsr'(_pipe@2, 3),
|
|
842
|
+
integer_to_permissions(_pipe@3)
|
|
843
|
+
end,
|
|
844
|
+
begin
|
|
845
|
+
_pipe@4 = Octal,
|
|
846
|
+
integer_to_permissions(_pipe@4)
|
|
847
|
+
end}.
|
|
848
|
+
|
|
849
|
+
-file("src/simplifile.gleam", 237).
|
|
850
|
+
?DOC(" Extract the `FilePermissions` from a given FileInfo value.\n").
|
|
851
|
+
-spec file_info_permissions(file_info()) -> file_permissions().
|
|
852
|
+
file_info_permissions(File_info) ->
|
|
853
|
+
octal_to_file_permissions(file_info_permissions_octal(File_info)).
|
|
854
|
+
|
|
855
|
+
-file("src/simplifile.gleam", 731).
|
|
856
|
+
?DOC(
|
|
857
|
+
" Sets the permissions for a given file using an octal representation\n"
|
|
858
|
+
"\n"
|
|
859
|
+
" # Example\n"
|
|
860
|
+
" ```gleam\n"
|
|
861
|
+
" set_permissions_octal(\"./script.sh\", 0o777)\n"
|
|
862
|
+
" ```\n"
|
|
863
|
+
).
|
|
864
|
+
-spec set_permissions_octal(binary(), integer()) -> {ok, nil} |
|
|
865
|
+
{error, file_error()}.
|
|
866
|
+
set_permissions_octal(Filepath, Permissions) ->
|
|
867
|
+
simplifile_erl:set_permissions_octal(Filepath, Permissions).
|
|
868
|
+
|
|
869
|
+
-file("src/simplifile.gleam", 716).
|
|
870
|
+
?DOC(
|
|
871
|
+
" Sets the permissions for a given file\n"
|
|
872
|
+
"\n"
|
|
873
|
+
" # Example\n"
|
|
874
|
+
" ```gleam\n"
|
|
875
|
+
" let all = set.from_list([Read, Write, Execute])\n"
|
|
876
|
+
" let all = FilePermissions(user: all, group: all, other: all)\n"
|
|
877
|
+
" let assert Ok(Nil) = set_permissions(\"./script.sh\", all)\n"
|
|
878
|
+
" ```\n"
|
|
879
|
+
).
|
|
880
|
+
-spec set_permissions(binary(), file_permissions()) -> {ok, nil} |
|
|
881
|
+
{error, file_error()}.
|
|
882
|
+
set_permissions(Filepath, Permissions) ->
|
|
883
|
+
simplifile_erl:set_permissions_octal(
|
|
884
|
+
Filepath,
|
|
885
|
+
file_permissions_to_octal(Permissions)
|
|
886
|
+
).
|
|
887
|
+
|
|
888
|
+
-file("src/simplifile.gleam", 739).
|
|
889
|
+
?DOC(" Returns the current working directory\n").
|
|
890
|
+
-spec current_directory() -> {ok, binary()} | {error, file_error()}.
|
|
891
|
+
current_directory() ->
|
|
892
|
+
_pipe = file:get_cwd(),
|
|
893
|
+
gleam@result:map(_pipe, fun gleam_stdlib:utf_codepoint_list_to_string/1).
|