| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with this |
| * work for additional information regarding copyright ownership. The ASF |
| * licenses this file to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| |
| #include "winutils.h" |
| |
| static void Usage(LPCWSTR program); |
| |
| int wmain(__in int argc, __in_ecount(argc) wchar_t* argv[]) |
| { |
| LPCWSTR cmd = NULL; |
| |
| if (argc < 2) |
| { |
| Usage(argv[0]); |
| return EXIT_FAILURE; |
| } |
| |
| cmd = argv[1]; |
| |
| if (wcscmp(L"ls", cmd) == 0) |
| { |
| return Ls(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"chmod", cmd) == 0) |
| { |
| return Chmod(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"chown", cmd) == 0) |
| { |
| return Chown(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"groups", cmd) == 0) |
| { |
| return Groups(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"hardlink", cmd) == 0) |
| { |
| return Hardlink(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"symlink", cmd) == 0) |
| { |
| return Symlink(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"readlink", cmd) == 0) |
| { |
| return Readlink(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"task", cmd) == 0) |
| { |
| return Task(argc - 1, argv + 1); |
| } |
| else if (wcscmp(L"systeminfo", cmd) == 0) |
| { |
| return SystemInfo(); |
| } |
| else if (wcscmp(L"help", cmd) == 0) |
| { |
| Usage(argv[0]); |
| return EXIT_SUCCESS; |
| } |
| else |
| { |
| Usage(argv[0]); |
| return EXIT_FAILURE; |
| } |
| } |
| |
| static void Usage(LPCWSTR program) |
| { |
| fwprintf(stdout, L"Usage: %s [command] ...\n\ |
| Provide basic command line utilities for Hadoop on Windows.\n\n\ |
| The available commands and their usages are:\n\n", program); |
| |
| fwprintf(stdout, L"%-15s%s\n\n", L"chmod", L"Change file mode bits."); |
| ChmodUsage(L"chmod"); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-15s%s\n\n", L"chown", L"Change file owner."); |
| ChownUsage(L"chown"); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-15s%s\n\n", L"groups", L"List user groups."); |
| GroupsUsage(L"groups"); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-15s%s\n\n", L"hardlink", L"Hard link operations."); |
| HardlinkUsage(); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-15s%s\n\n", L"ls", L"List file information."); |
| LsUsage(L"ls"); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-10s%s\n\n", L"symlink", L"Create a symbolic link."); |
| SymlinkUsage(); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-10s%s\n\n", L"readlink", L"Print the target of a symbolic link."); |
| ReadlinkUsage(); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-15s%s\n\n", L"systeminfo", L"System information."); |
| SystemInfoUsage(); |
| fwprintf(stdout, L"\n\n"); |
| |
| fwprintf(stdout, L"%-15s%s\n\n", L"task", L"Task operations."); |
| TaskUsage(); |
| fwprintf(stdout, L"\n\n"); |
| } |