summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2018-03-02 09:47:54 -0600
committerGitHub <noreply@github.com>2018-03-02 09:47:54 -0600
commit118e078c5badd520d18b92813fd88789c8d341ab (patch)
tree398b5f996784428969cdb129bc196d9ea669db25
parent36ebd05f526418342975569eb4465906ad35987e (diff)
parentb74194525559db19a97b94677caf4cb1bea6b297 (diff)
downloadrust-installer-118e078c5badd520d18b92813fd88789c8d341ab.tar.gz
Merge pull request #81 from Eijebong/bump
Bump dependencies
-rw-r--r--Cargo.toml7
-rw-r--r--src/lib.rs2
-rw-r--r--src/remove_dir_all.rs95
3 files changed, 33 insertions, 71 deletions
diff --git a/Cargo.toml b/Cargo.toml
index f9534f3..7f3a740 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@ error-chain = "0.11.0"
flate2 = "1.0.1"
rayon = "1.0"
tar = "0.4.13"
-walkdir = "1.0.7"
+walkdir = "2"
xz2 = "0.1.4"
[dependencies.clap]
@@ -21,6 +21,5 @@ features = ["yaml"]
version = "2.19.0"
[target."cfg(windows)".dependencies]
-lazy_static = "0.2.8"
-kernel32-sys = "0.2.2"
-winapi = "0.2.8"
+lazy_static = "1"
+winapi = { version = "0.3", features = ["errhandlingapi", "handleapi", "ioapiset", "winerror", "winioctl", "winnt"] }
diff --git a/src/lib.rs b/src/lib.rs
index c8acc26..ff0495b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -19,8 +19,6 @@ extern crate xz2;
#[cfg(windows)]
extern crate winapi;
#[cfg(windows)]
-extern crate kernel32;
-#[cfg(windows)]
#[macro_use]
extern crate lazy_static;
diff --git a/src/remove_dir_all.rs b/src/remove_dir_all.rs
index 778b3a1..e06016c 100644
--- a/src/remove_dir_all.rs
+++ b/src/remove_dir_all.rs
@@ -25,66 +25,27 @@ pub fn remove_dir_all(path: &Path) -> io::Result<()> {
#[cfg(windows)]
mod win {
- use winapi::{
- FileBasicInfo,
- FILE_BASIC_INFO,
- FALSE,
- FileRenameInfo,
- FILE_RENAME_INFO,
- c_ushort,
- c_uint,
- FILETIME,
- FILE_ATTRIBUTE_READONLY,
- FILE_ATTRIBUTE_REPARSE_POINT,
- FILE_ATTRIBUTE_DIRECTORY,
- WIN32_FIND_DATAW,
- ERROR_NO_MORE_FILES,
- OPEN_EXISTING,
- OPEN_ALWAYS,
- TRUNCATE_EXISTING,
- CREATE_ALWAYS,
- CREATE_NEW,
- GENERIC_READ,
- GENERIC_WRITE,
- FILE_GENERIC_WRITE,
- FILE_WRITE_DATA,
- FILE_SHARE_READ,
- FILE_SHARE_WRITE,
- FILE_SHARE_DELETE,
- FILE_FLAG_DELETE_ON_CLOSE,
- DELETE,
- FILE_WRITE_ATTRIBUTES,
- FILE_INFO_BY_HANDLE_CLASS,
- HANDLE,
- ERROR_INSUFFICIENT_BUFFER,
- FILE_READ_ATTRIBUTES,
- FILE_FLAG_BACKUP_SEMANTICS,
- FILE_FLAG_OPEN_REPARSE_POINT,
- ERROR_CALL_NOT_IMPLEMENTED,
- DWORD,
- BOOL,
- LPVOID,
- INVALID_HANDLE_VALUE,
- LPCWSTR,
- SECURITY_SQOS_PRESENT,
- FSCTL_GET_REPARSE_POINT,
- BY_HANDLE_FILE_INFORMATION,
- IO_REPARSE_TAG_SYMLINK,
- IO_REPARSE_TAG_MOUNT_POINT,
- };
-
- use kernel32::{
- CreateFileW,
- GetFileInformationByHandle,
- CloseHandle,
- GetLastError,
- SetLastError,
- DeviceIoControl,
- GetModuleHandleW,
- GetProcAddress,
- FindNextFileW,
- FindFirstFileW,
- };
+ use winapi::ctypes::{c_ushort, c_uint};
+ use winapi::shared::minwindef::{BOOL, DWORD, FALSE, FILETIME, LPVOID};
+ use winapi::shared::winerror::{ERROR_CALL_NOT_IMPLEMENTED, ERROR_INSUFFICIENT_BUFFER, ERROR_NO_MORE_FILES};
+ use winapi::um::errhandlingapi::{GetLastError, SetLastError};
+ use winapi::um::fileapi::{BY_HANDLE_FILE_INFORMATION, CREATE_ALWAYS, CREATE_NEW};
+ use winapi::um::fileapi::{FILE_BASIC_INFO, FILE_RENAME_INFO, TRUNCATE_EXISTING};
+ use winapi::um::fileapi::{OPEN_ALWAYS, OPEN_EXISTING};
+ use winapi::um::fileapi::{CreateFileW, GetFileInformationByHandle, FindFirstFileW, FindNextFileW};
+ use winapi::um::handleapi::{CloseHandle, INVALID_HANDLE_VALUE};
+ use winapi::um::ioapiset::DeviceIoControl;
+ use winapi::um::libloaderapi::{GetProcAddress, GetModuleHandleW};
+ use winapi::um::minwinbase::{FileBasicInfo, FileRenameInfo, FILE_INFO_BY_HANDLE_CLASS, WIN32_FIND_DATAW};
+ use winapi::um::winbase::{FILE_FLAG_BACKUP_SEMANTICS, FILE_FLAG_DELETE_ON_CLOSE, FILE_FLAG_OPEN_REPARSE_POINT};
+ use winapi::um::winbase::SECURITY_SQOS_PRESENT;
+ use winapi::um::winioctl::FSCTL_GET_REPARSE_POINT;
+ use winapi::um::winnt::{FILE_ATTRIBUTE_REPARSE_POINT, FILE_ATTRIBUTE_READONLY};
+ use winapi::um::winnt::{FILE_SHARE_DELETE, FILE_SHARE_READ, FILE_SHARE_WRITE};
+ use winapi::um::winnt::{FILE_WRITE_ATTRIBUTES, FILE_READ_ATTRIBUTES};
+ use winapi::um::winnt::{FILE_WRITE_DATA, FILE_GENERIC_WRITE, GENERIC_READ, GENERIC_WRITE};
+ use winapi::um::winnt::{LARGE_INTEGER, IO_REPARSE_TAG_MOUNT_POINT, IO_REPARSE_TAG_SYMLINK};
+ use winapi::um::winnt::{LPCWSTR, DELETE, FILE_ATTRIBUTE_DIRECTORY, HANDLE};
use std::ptr;
use std::sync::Arc;
@@ -525,11 +486,15 @@ mod win {
}
fn set_attributes(&self, attr: DWORD) -> io::Result<()> {
+ let zero: LARGE_INTEGER = unsafe {
+ mem::zeroed()
+ };
+
let mut info = FILE_BASIC_INFO {
- CreationTime: 0, // do not change
- LastAccessTime: 0, // do not change
- LastWriteTime: 0, // do not change
- ChangeTime: 0, // do not change
+ CreationTime: zero, // do not change
+ LastAccessTime: zero, // do not change
+ LastWriteTime: zero, // do not change
+ ChangeTime: zero, // do not change
FileAttributes: attr,
};
let size = mem::size_of_val(&info);
@@ -560,7 +525,7 @@ mod win {
unsafe {
// Thanks to alignment guarantees on Windows this works
// (8 for 32-bit and 16 for 64-bit)
- let mut info = data.as_mut_ptr() as *mut FILE_RENAME_INFO;
+ let info = data.as_mut_ptr() as *mut FILE_RENAME_INFO;
// The type of ReplaceIfExists is BOOL, but it actually expects a
// BOOLEAN. This means true is -1, not c::TRUE.
(*info).ReplaceIfExists = if replace { -1 } else { FALSE };