node.js小工具--修改Xcode 'Create by'作者名称
简介
用Xcode创建源文件时会自动在文件开始位置加入如下注释:
//
// ISSImageCycleScrollView.m
// SoftTravel
//
// Created by iss110302000283 on 16/2/26.
// Copyright © 2016年 issuser. All rights reserved.
//
原理
这个其实是通过Xcode的代码模板(Template)生成的,Xcode的Template目录在这个目录:
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source
打开这个目录,可以看到各种文件对应的模板文件,例如:
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//
#import <Foundation/Foundation.h>
@protocol ___FILEBASENAMEASIDENTIFIER___ <NSObject>
@end
___FULLUSERNAME___就是作者名,修改此模板后,在Xcode中创建相应文件时就会生效
批量脚本
这里提供一个node.js的脚本,批量修改Xcode的模板,将 ___FULLUSERNAME___作者名修改成我们想要的:
// updateXcodeTemplate.js
const fs = require('fs');
const path = require('path');
// 需要修改的模板文件后缀名
const extArray = [".h", ".m", ".cpp", ".hpp", ".swift", ".c"]
function updateTemplateFile(filePath)
{
var stat = fs.statSync(filePath);
if(stat.isFile())
{
if(extArray.indexOf(path.extname(filePath)) != -1)
{
var str = fs.readFileSync(filePath).toString();
// 替换作者名
var newStr = str.replace(/___FULLUSERNAME___/g, '张学友(___FULLUSERNAME___)');
if(str != newStr)
{
fs.writeFileSync(filePath, newStr);
console.log("update file: " + filePath);
}
}
}
else if(stat.isDirectory())
{
// 如果是文件夹,则递归调用
var fileList = fs.readdirSync(filePath);
for(var i = 0; i < fileList.length; i++)
{
updateTemplateFile(path.join(filePath, fileList[i]));
}
}
}
updateTemplateFile("/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/Source");
执行脚本:
// 注意需要用超级用户权限修改,否则会提示没有权限。
$ sudo node updateXcodeTemplate.js
node.js小工具--修改Xcode 'Create by'作者名称的更多相关文章
- Node.js 小工具--supervisor
Node.js 在写文件的时候 一旦更改.每次都得重新运行 app.js. 很麻烦. supervisor 工具可以帮助你 监听文件改动,自动重启. sudo npm install -g super ...
- 2015年最佳的15个 Node.js 开发工具
Node.js 越来月流行,这个基于 Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些工具 ...
- 推荐近期15个 Node.js 开发工具
近来Node.js 越来月流行了,这个基于Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些 ...
- 推荐15个月 Node.js 开发工具
Node.js 越来月流行.这个基于 Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中.我们列出了2015年最佳的15个 Node.js 开发工具.这些工具 ...
- Node.js 常用工具
Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherit ...
- Node.js 常用工具util包
Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.isError(obj); util.is ...
- js小工具---本地图片转换为base64编码数据
今天用jmeter对图片对比进行性能测试,post请求为json请求,图片为Base64编码后的图片数据.所以需要将一张本地图片生成base64编码,找到一个js小工具,记录在这儿便于以后复用. 效果 ...
- node.js(小案例)_实现学生信息增删改
一.前言 本节内容主要对小案例做一个总结: 1.如何开始搭建小项目 2.路由设计 3.模块应用 4.项目源码以及实现过程github地址: 项目演示如下: 二.主要内容 1.项目的关键性js源码: 项 ...
- 我用的一些Node.js开发工具、开发包、框架等总结
开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 2.做些小型项目用Sublime Text. 3.Browser ...
随机推荐
- hdu 3518(后缀数组)
题意:容易理解... 分析:这是我做的后缀数组第一题,做这个题只需要知道后缀数组中height数组代表的是什么就差不多会做了,height[i]表示排名第i的后缀与排名第i-1的后缀的最长公共前缀,然 ...
- HDU 4749-Parade Show(KMP变形)
题意: 给出一个母串和一个模式串求母串中最多能分成最大的子串数(每个字串中的各个数字的大小关系和模式串相同) 分析: KMP变形匹配规则变一下即可,用当前数字和下个数字的差表示,大小关系方便匹配 #i ...
- LeetCode题解——Palindrome Number
题目: 判断一个数字是不是回文数字,即最高位与最低位相同,次高位与次低位相同,... 解法: 求出数字的位数,然后依次求商和求余判断是否相等. 代码: class Solution { public: ...
- python 入门实践之网页数据抓取
这个不错.正好入门学习使用. 1.其中用到 feedparser: 技巧:使用 Universal Feed Parser 驾驭 RSS http://www.ibm.com/developerwor ...
- 在ubuntu下安装chrome
To add PPA in Ubuntu 14.04 / 13.10 / 13.04 / 12.10 / 12.04 First download and install the key from G ...
- bzoj 3884 上帝与集合的正确用法(递归,欧拉函数)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3884 [题意] 求2^2^2… mod p [思路] 设p=2^k * q+(1/0) ...
- [转] Web前端优化之 Server篇
原文链接: http://lunax.info/archives/3093.html Web 前端优化最佳实践第二部分面向 Server .目前共计有 6 条实践规则.[注,这最多算技术笔记,查看最原 ...
- 举例详细说明javascript作用域、闭包原理以及性能问题(转)
转自:http://www.cnblogs.com/mrsunny/archive/2011/11/03/2233978.html 这可能是每一个jser都曾经为之头疼的却又非常经典的问题,关系到内存 ...
- 关于put 上传图片的解决方式
客户端: 因为put只支持单一类型的资源进行传输,所以不能使用像 Multipart/form-data这样的content-type进行描述,而只能使用像image/jpeg .image/png的 ...
- Android实例-读取设备联系人(XE8+小米2)
相关资料: http://www.colabug.com/thread-1071065-1-1.html 结果: 1.将权限打开Read contacts设置为True,不然报图一的错误. 2.搜索空 ...