commit
e0fe81dfcb
36
README.en.md
36
README.en.md
@ -1,36 +0,0 @@
|
||||
# ksh
|
||||
|
||||
#### Description
|
||||
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
|
||||
|
||||
#### Software Architecture
|
||||
Software architecture description
|
||||
|
||||
#### Installation
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### Instructions
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### Contribution
|
||||
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
|
||||
|
||||
#### Gitee Feature
|
||||
|
||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
39
README.md
39
README.md
@ -1,39 +0,0 @@
|
||||
# ksh
|
||||
|
||||
#### 介绍
|
||||
{**以下是码云平台说明,您可以替换此简介**
|
||||
码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
||||
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
||||
|
||||
#### 软件架构
|
||||
软件架构说明
|
||||
|
||||
|
||||
#### 安装教程
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### 使用说明
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### 参与贡献
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 新建 Feat_xxx 分支
|
||||
3. 提交代码
|
||||
4. 新建 Pull Request
|
||||
|
||||
|
||||
#### 码云特技
|
||||
|
||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
||||
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
||||
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
||||
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
||||
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
12
dotkshrc
Normal file
12
dotkshrc
Normal file
@ -0,0 +1,12 @@
|
||||
# .kshrc
|
||||
|
||||
# Source global definitions
|
||||
if [ -f /etc/kshrc ]; then
|
||||
. /etc/kshrc
|
||||
fi
|
||||
|
||||
# use emacs editing mode by default
|
||||
set -o emacs
|
||||
|
||||
# User specific aliases and functions
|
||||
|
||||
BIN
ksh-2020.0.0-beta1.tar.gz
Normal file
BIN
ksh-2020.0.0-beta1.tar.gz
Normal file
Binary file not shown.
92
ksh.spec
Normal file
92
ksh.spec
Normal file
@ -0,0 +1,92 @@
|
||||
Name: ksh
|
||||
Version: 2020.0.0
|
||||
Release: 2
|
||||
Summary: The Original ATT Korn Shell
|
||||
License: EPL
|
||||
URL: http://www.kornshell.com/
|
||||
Epoch: 1
|
||||
Source0: https://github.com/att/ast/releases/download/%{version}/%{name}-%{version}.tar.gz
|
||||
Source1: kshcomp.conf
|
||||
Source2: kshrc.rhs
|
||||
Source3: dotkshrc
|
||||
Provides: /bin/ksh /usr/bin/ksh
|
||||
BuildRequires: meson gcc glibc-devel ed
|
||||
Conflicts: pdksh
|
||||
Requires(post): grep, coreutils, systemd-units
|
||||
Requires(postun): sed
|
||||
|
||||
%description
|
||||
KornShell is an interactive command language that provides access to the UNIX system and to
|
||||
many other systems, on the many different computers and workstations on which it is implemented.
|
||||
|
||||
%package help
|
||||
Summary: Documentation for ksh package
|
||||
|
||||
%description help
|
||||
Documentation for ksh package.
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{version}
|
||||
|
||||
%build
|
||||
%meson -Dbuild-api-tests=false
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
mv %{buildroot}/%{_bindir}/ksh %{buildroot}/%{_bindir}/ksh93
|
||||
mv %{buildroot}/%{_bindir}/shcomp %{buildroot}/%{_bindir}/shcomp93
|
||||
mv %{buildroot}/%{_mandir}/man1/ksh.1 %{buildroot}/%{_mandir}/man1/ksh93.1
|
||||
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/binfmt.d/kshcomp.conf
|
||||
install -p -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/kshrc
|
||||
install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/skel/.kshrc
|
||||
|
||||
%post
|
||||
for s in /bin/ksh /usr/bin/ksh
|
||||
do
|
||||
if [ ! -f /etc/shells ]; then
|
||||
echo "$s" > /etc/shells
|
||||
else
|
||||
if ! grep -q '^'"$s"'$' /etc/shells ; then
|
||||
echo "$s" >> /etc/shells
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
/bin/systemctl try-restart systemd-binfmt.service >/dev/null 2>&1 || :
|
||||
|
||||
%{_sbindir}/alternatives --install /bin/ksh ksh /bin/ksh93 50 \
|
||||
--slave %{_mandir}/man1/ksh.1.gz ksh-man %{_mandir}/man1/ksh93.1.gz \
|
||||
--slave /bin/shcomp shcomp93 /bin/shcomp93 2>/dev/null
|
||||
|
||||
%preun
|
||||
if [ $1 -eq 0 ]; then
|
||||
%{_sbindir}/alternatives --remove ksh /bin/ksh93
|
||||
fi
|
||||
|
||||
%postun
|
||||
for s in /bin/ksh /usr/bin/ksh
|
||||
do
|
||||
if [ ! -f $s ]; then
|
||||
sed -i '\|^'"$s"'$|d' /etc/shells
|
||||
fi
|
||||
done
|
||||
|
||||
%triggerpostun -- ksh < 1:2020.0.0-0.1
|
||||
%{_sbindir}/alternatives --auto ksh
|
||||
|
||||
%files
|
||||
%doc src/cmd/ksh93/{COMPATIBILITY,RELEASE,TYPES}
|
||||
%{_bindir}/{ksh93,shcomp93}
|
||||
%config(noreplace) %{_sysconfdir}/skel/.kshrc
|
||||
%config(noreplace) %{_sysconfdir}/kshrc
|
||||
%config(noreplace) %{_sysconfdir}/binfmt.d/kshcomp.conf
|
||||
|
||||
%files help
|
||||
%doc README.md
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Fri Jan 10 2020 Lijin Yang <yanglijin@huawei.com> - 1:2020.0.0-2
|
||||
- Package init
|
||||
|
||||
1
kshcomp.conf
Normal file
1
kshcomp.conf
Normal file
@ -0,0 +1 @@
|
||||
:kshcomp:M::\x0b\x13\x08::/bin/ksh:
|
||||
53
kshrc.rhs
Normal file
53
kshrc.rhs
Normal file
@ -0,0 +1,53 @@
|
||||
#
|
||||
# /etc/kshrc is sourced in interactive shells. It
|
||||
# should contain commands to set up aliases, functions,
|
||||
# options, key bindings, etc.
|
||||
#
|
||||
|
||||
# Set prompts
|
||||
#PROMPT='[%n@%m]%~%# ' # default prompt
|
||||
#RPROMPT=' %~' # prompt for right side of screen
|
||||
|
||||
_src_etc_profile_d()
|
||||
{
|
||||
# from zshrc, with ksh fixes
|
||||
if [[ ! -o login ]]; then # We're not a login shell
|
||||
for i in /etc/profile.d/*.sh; do
|
||||
if [ -r "$i" ]; then
|
||||
. $i
|
||||
fi
|
||||
done
|
||||
unset i
|
||||
fi
|
||||
}
|
||||
|
||||
pathmunge () {
|
||||
case ":${PATH}:" in
|
||||
*:"$1":*)
|
||||
;;
|
||||
*)
|
||||
if [ "$2" = "after" ]; then
|
||||
PATH=$PATH:$1
|
||||
else
|
||||
PATH=$1:$PATH
|
||||
fi
|
||||
esac
|
||||
}
|
||||
|
||||
_src_etc_profile_d
|
||||
|
||||
unset -f _src_etc_profile_d
|
||||
unset -f pathmunge
|
||||
|
||||
# key bindings - make Delete, Home, End,... work
|
||||
keybd_trap () {
|
||||
case ${.sh.edchar} in
|
||||
$'\e[1~') .sh.edchar=$'\001';; # Home = beginning-of-line
|
||||
$'\e[F') .sh.edchar=$'\005';; # End = end-of-line
|
||||
$'\e[5~') .sh.edchar=$'\e>';; # PgUp = history-previous
|
||||
$'\e[6~') .sh.edchar=$'\e<';; # PgDn = history-next
|
||||
$'\e[3~') .sh.edchar=$'\004';; # Delete = delete-char
|
||||
esac
|
||||
}
|
||||
trap keybd_trap KEYBD
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user