| 20 | #endif |
| 21 | |
| 22 | bool file_is_usable(const std::string& fileName, const bool inplace) { |
| 23 | if (!fs::exists(fileName)) { |
| 24 | std::cerr << fileName << ": No such file." << std::endl; |
| 25 | return false; |
| 26 | } |
| 27 | |
| 28 | fs::file_status status = fs::status(fileName); |
| 29 | fs::perms perm = status.permissions(); |
| 30 | |
| 31 | if (!fs::is_regular_file(status)) { |
| 32 | std::cerr << fileName << ": Not a file." << std::endl; |
| 33 | return false; |
| 34 | } |
| 35 | |
| 36 | if ((perm & fs::perms::owner_read) == fs::perms::none) { |
| 37 | std::cerr << fileName << ": No access to read." << std::endl; |
| 38 | return false; |
| 39 | } |
| 40 | |
| 41 | if (inplace && (perm & fs::perms::owner_write) == fs::perms::none) { |
| 42 | std::cerr << fileName << ": No access to write." << std::endl; |
| 43 | return false; |
| 44 | } |
| 45 | |
| 46 | return true; |
| 47 | } |
| 48 | |
| 49 | int main(int argc, const char* argv[]) { |
| 50 | args::ArgumentParser parser("Reformats your Lua source code.", ""); |