hudada-cli
Version:
专为程序员准备的本地文档搜索,快捷开发工具
3 lines (2 loc) • 1.29 kB
JavaScript
import o from"fs/promises";import{existsSync as r}from"fs";import e from"path";import t from"chalk";async function i(i){try{if(!i)return void console.error(t.red("请提供文件名"));const c=e.isAbsolute(i)?i:e.resolve(process.cwd(),i),s=e.dirname(c);try{r(s)||(await o.mkdir(s,{recursive:!0}),console.log(t.gray(`创建目录: ${s}`)));if(r(c)){const r=new Date;await o.utimes(c,r,r),console.log(t.green(`✓ 更新文件时间戳: ${i}`))}else await o.writeFile(c,""),console.log(t.green(`✓ 创建新文件: ${i}`));const e=await o.stat(c);console.log(t.gray("文件信息:")),console.log(t.gray(`路径: ${c}`)),console.log(t.gray(`大小: ${function(o){if(0===o)return"0 B";const r=["B","KB","MB","GB","TB"],e=Math.floor(Math.log(o)/Math.log(1024));return`${(o/Math.pow(1024,e)).toFixed(1)} ${r[e]}`}(e.size)}`)),console.log(t.gray(`创建时间: ${n(e.birthtime)}`)),console.log(t.gray(`修改时间: ${n(e.mtime)}`))}catch(o){throw"EACCES"===o.code?new Error(`没有权限访问: ${i}`):"ENOSPC"===o.code?new Error("磁盘空间不足"):o}}catch(o){console.error(t.red("创建文件失败:"),o)}}function n(o){return o.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}export{i as touchFile};